在同一行的dicts列表中打印相同的值

时间:2014-06-15 15:38:13

标签: python list dictionary printing

我有一个像这样的词典列表:

mylist = [{'name':'Alice','age':18},{'name':'Bob','age':19}]

我想用一行打印出来,看起来像这样:

Alice is 18 years old, Bob is 19 years old

如果我迭代它并使用print,它总是使用换行符......

2 个答案:

答案 0 :(得分:1)

您可以将Python字符串用作此类

的模板
mylist = [{'name': 'Alice', 'age': 18}, {'name': 'Bob', 'age': 19}]
print ", ".join("{name} is {age} years old".format(**item) for item in mylist)
# Alice is 18 years old, Bob is 19 years old

我们从列表中获取每个项目,并在字符串上解压缩字典以替换相应的值。最后,我们使用,加入结果,这将以您期望的格式提供结果。

答案 1 :(得分:1)

使用join,而不是使用print进行迭代,而不是

print ", ".join([entry['name'] + " is " + str(entry['age']) + " years old" for entry in mylist])

join将字符串粘贴在作为参数给出的列表中以及调用它的任何字符串。当然,您也可以使用格式字符串替换entry['name'] + " is " + str(entry['age']) + " years old",例如"%s is %d years old" % (entry['name'], entry['age'])"或(使用新格式字符串语法和关键字参数)"{name} is {age} years old".format(**entry)