-
Anonymous
Как отфильтровать словарь по произвольной функции условия?
Сообщение
Anonymous »
У меня есть словарь точек, например:
Код: Выделить всё
>>> points={'a':(3,4), 'b':(1,2), 'c':(5,5), 'd':(3,3)}
Я хочу создать новый словарь со всеми точками, значения x и y которых меньше 5, т. е. точками «a», «b» и «d».
Согласно книге, каждый словарь имеет функцию items(), которая возвращает список кортежей (ключ, пара):
Код: Выделить всё
>>> points.items()
[('a', (3, 4)), ('c', (5, 5)), ('b', (1, 2)), ('d', (3, 3))]
Итак, я написал это:
Код: Выделить всё
>>> for item in [i for i in points.items() if i[1][0]> points_small
{'a': (3, 4), 'b': (1, 2), 'd': (3, 3)}
Есть ли более элегантный способ? Я ожидал, что в Python будет какая-нибудь потрясающая функция Dictionary.filter(f)...
Подробнее здесь:
https://stackoverflow.com/questions/284 ... n-function
1732048120
Anonymous
У меня есть словарь точек, например:
[code]>>> points={'a':(3,4), 'b':(1,2), 'c':(5,5), 'd':(3,3)}
[/code]
Я хочу создать новый словарь со всеми точками, значения x и y которых меньше 5, т. е. точками «a», «b» и «d».
Согласно книге, каждый словарь имеет функцию items(), которая возвращает список кортежей (ключ, пара):
[code]>>> points.items()
[('a', (3, 4)), ('c', (5, 5)), ('b', (1, 2)), ('d', (3, 3))]
[/code]
Итак, я написал это:
[code]>>> for item in [i for i in points.items() if i[1][0]> points_small
{'a': (3, 4), 'b': (1, 2), 'd': (3, 3)}
[/code]
Есть ли более элегантный способ? Я ожидал, что в Python будет какая-нибудь потрясающая функция Dictionary.filter(f)...
Подробнее здесь: [url]https://stackoverflow.com/questions/2844516/how-to-filter-a-dictionary-according-to-an-arbitrary-condition-function[/url]