Как получить уникальные значения из определенного ключа в списке словарей?

#python

#python

Вопрос:

Дайте У меня есть список со словарями, и я хочу получить все уникальные значения из ключа first_name из словарей, как мне это сделать на python?

 data = [
{
    "id": 1,
    "first_name": "John"
},
{   "id": 2,
    "first_name": "Mary"
},
{   "id": 3,
    "first_name": "John"
}
]
  

Ответ №1:

Вы можете использовать набор понимания :

 first_names = {d["first_name"] for d in data}
  

Комментарии:

1. Это приведет к дублированию. Даже в примере OPs.

Ответ №2:

 >>> set(i["first_name"] for i in data)
{'John', 'Mary'}
  

если вы хотите list вместо set , вы можете преобразовать его в list:

 >>> list(set(i["first_name"] for i in data))
['John', 'Mary']
  

Ответ №3:

Вы можете сопоставить оператор itemgetter() со словарями в списке:

 from operator import itemgetter

iget = itemgetter('first_name')

set(map(iget, data))
# {'Mary', 'John'}