Как получить имена всех лиц в списке словарей? - PullRequest
0 голосов
/ 08 февраля 2019

Получение значений из списка словарей Создайте функцию iterateDictionary2(key_name, some_list), которая, учитывая список словарей и имя ключа, функция печатает значение, сохраненное в этом ключе для каждого словаря.Например, iterateDictionary2('first_name', students) должно вывести:

    Michael
    John
    Mark
    KB

И iterateDictionary2('last_name', students) должно вывести:

    Jordan
    Rosales
    Guillen
    Tonel

Ниже приведен список словарей.

`students = [
     {'first_name':  'Michael', 'last_name' : 'Jordan'},
     {'first_name' : 'John', 'last_name' : 'Rosales'},
     {'first_name' : 'Mark', 'last_name' : 'Guillen'},
     {'first_name' : 'KB', 'last_name' : 'Tonel'}
]`

Я пытался настроить таргетинг print(students[0]['first_name']), чтобы хотя бы показать мне, где я работаю, в списке dict, но я изо всех сил пытаюсь получить доступ ко всем словарям одновременно.

Мой код незакончен, потому что я изо всех сил стараюсьс этим вопросом.

def getValues(keyName, someList):
    for i in len(someList):


print(getValues('first_name', students))

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

Ответы [ 4 ]

0 голосов
/ 08 февраля 2019
def get_first_name_list(students):
    return [st['first_name'] for st in students if  'first_name' in st]

Это будет работать, в этом коде проверяется список словаря с ключом 'first_name', если словарь имеет ключ 'first_name', тогда значение first_name добавляется в список.и список будет возвращен.

0 голосов
/ 08 февраля 2019
# method with two params a key and a  list
def iterateDictionary(key, students):
 for s in students:
    print(s[key])

# a list
students = [
     {'first_name':  'Michael', 'last_name' : 'Jordan'},
     {'first_name' : 'John', 'last_name' : 'Rosales'},
     {'first_name' : 'Mark', 'last_name' : 'Guillen'},
     {'first_name' : 'KB', 'last_name' : 'Tonel'}
]


# printing the first names
print("Printing First names ..")

# calling the method with a key (first_name) and a list    
iterateDictionary('first_name', students)

# printing the last names
print("Printing Last names ..")

# calling the method with a key (last_name) and a list
iterateDictionary('last_name', students)

ВЫХОД:

Printing First names ..
Michael
John
Mark
KB
Printing Last names ..
Jordan
Rosales
Guillen
Tonel

РЕДАКТИРОВАТЬ:

Если вы хотите, чтобы они были напечатаны в списке:

def iterateDictionary(key, students):
        print([s[key] for s in students])

ВЫХОД:

Printing First names ..
['Michael', 'John', 'Mark', 'KB']
Printing Last names ..
['Jordan', 'Rosales', 'Guillen', 'Tonel']
0 голосов
/ 08 февраля 2019
#students = [
#     {'first_name':  'Michael', 'last_name' : 'Jordan'},
#     {'first_name' : 'John', 'last_name' : 'Rosales'},
#     {'first_name' : 'Mark', 'last_name' : 'Guillen'},
#     {'first_name' : 'KB', 'last_name' : 'Tonel'}
#]

def iterateDictionary2(key_name, some_list):
    for d in some_list:
        print(d[key_name])


iterateDictionary2('first_name', students)
#Michael
#John
#Mark
#KB

iterateDictionary2('last_name', students)
#Jordan
#Rosales
#Guillen
#Tonel
0 голосов
/ 08 февраля 2019

Попробуйте это:

def iterateDictionary2(key_name, students):
    return [student[key_name] for student in students]

Тогда результатом вызова метода для ('first_name', students) будет список этих значений: ['Michael', 'John', 'Mark', 'KB']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...