打印字典列表的键和值



我正在尝试打印字典列表中的键和值,我希望输出显示为这样。

first_name - Michael, last_name - Jordan
first_name - John, last_name - Rosales
first_name - Mark, last_name - Guillen
first_name - KB, last_name - 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'}
]
def listd (somelist):
for key , value in students:
print(key, '-', value)
print (listd(students))

我得到的输出只有键而不是值

first_name - last_name
first_name - last_name
first_name - last_name
first_name - last_name
None

我犯了什么错误?如何查看键和值?

对于学生中的sub:

for key,values in sub.items():
Print(key, " : ", value)

只需从列表中提取每个子字典,并在loop中调用每个子字典上字典的item方法。输入键值元组,就可以随心所欲地使用它们。。

students是一个列表。您需要对这个列表进行迭代以获得每个字典。然后,对于每个字典,您需要对其键值对进行迭代,以使用f-string按照您想要的方式对其进行格式化。然后,您可以使用str.join()将这些值用逗号连接起来,以打印您想要的内容。

for student in students:
to_print = []
for key, value in student.items():
to_print.append(f"{key} - {value}")
# Now, to_print is a list that contains two elements:
# ["first_name - Michael", "last_name - Jordan"]
print(", ".join(to_print))

它给出:

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(*(", ".join(f"{key} - {value}" for key, value in student.items()) for student in students), sep="n")

最新更新