Tôi có một từ điển các điểm, nói:
>>> points={'a':(3,4), 'b':(1,2), 'c':(5,5), 'd':(3,3)}
Tôi muốn tạo một từ điển mới với tất cả các điểm có giá trị x và y nhỏ hơn 5, tức là các điểm 'a', 'b' và 'd'.
Theo cuốn sách , mỗi từ điển có items()
chức năng, trả về một danh sách các (key, pair)
tuple:
>>> points.items()
[('a', (3, 4)), ('c', (5, 5)), ('b', (1, 2)), ('d', (3, 3))]
Vì vậy, tôi đã viết này:
>>> for item in [i for i in points.items() if i[1][0]<5 and i[1][1]<5]:
... points_small[item[0]]=item[1]
...
>>> points_small
{'a': (3, 4), 'b': (1, 2), 'd': (3, 3)}
Có cách nào thanh lịch hơn? Tôi đã mong đợi Python có một số dictionary.filter(f)
chức năng siêu tuyệt vời ...