Как получить все уникальные идентификаторы из списка диктов? - PullRequest
0 голосов
/ 22 октября 2009

Скажем, у вас есть список таких диктов {'id': 1, 'other_value':5}

Так может быть;

items = [{'id': 1, 'other_value':5}, {'id': 1, 'other_value2':6}, {'id': 2, 'other_value':4}, {'id': 2, 'other_value2':3}]

Теперь вы можете предположить, что это небольшое подмножество данных. Там может быть тысячи. Также структура не указана мной, она мне дана.

Если бы я просто хотел получить идентификаторы, я мог бы сделать что-то вроде этого:

ids = [i[id] for i in items]

Однако вы заметите, что в исходных данных есть дубликаты идентификаторов. так что вопрос в том; как вы можете аккуратно получить уникальные идентификаторы?

Я надеялся на что-то вроде:

ids = [i[id] for i in items if not in LIST]

но, насколько я знаю, нет способа получить доступ к списку в генераторе.

конечно, я могу сделать цикл for и легко сделать это таким образом. Мне было просто интересно узнать, есть ли более краткий способ сделать это.

Ответы [ 2 ]

7 голосов
/ 22 октября 2009

если вам нужны уникальные идентификаторы, вы можете использовать набор:

set(i['id'] for i in items)
1 голос
/ 22 октября 2009
set(i['id'] for i in items)

но вы можете рассмотреть другую структуру данных в целом, например, dict of lists:

items = {1: [5, 6], 2: [2, 4]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...