所以我很难打印出我创建的列表中的两个值。
基本上,我列出了以下内容:
[
{
'Numbers': '1',
'Name': 'Hello'
},
{
'Numbers': '2',
'Name': 'There'
},
{
'Numbers': '3',
'Name': 'Stack'
},
{
'Numbers': '4',
'Name': 'OVerflow'
}
]
现在,如果我基本上调用该函数
names_number()
这会给我带来价值。
因此,您当然会使用for循环,该循环将自行打印每个循环,因此在这种情况下,循环看起来像:
对于我在names_number()中: 打印(i)
那会给我:
{'Numbers': '1', 'Name': 'Hello'}
{'Numbers': '2', 'Name': 'There'}
{'Numbers': '3', 'Name': 'Stack'}
现在的问题是我只希望将其打印出来
1 Hello
2 There
3 Stack
,我不知道在这种情况下,每次循环时,如何只打印出每个值。对于如何继续如上希望的输出
答案 0 :(得分:2)
print
的默认分隔符是单个空格,因此您使用了一个简单的for
循环:
for d in L:
print(d['Numbers'], d['Name'])
或使用f字符串(Python 3.6及更高版本):
for d in L:
print(f"{d['Numbers']} {d['Name']}")
这是一个复杂的功能解决方案:
from operator import itemgetter
fields = ('Numbers', 'Name')
print(*(f'{num} {name}' for num, name in map(itemgetter(*fields), L)), sep='\n')
1 Hello
2 There
3 Stack
4 OVerflow
答案 1 :(得分:1)
那呢:
for dct in lst:
print('{} {}'.format(dct['Numbers'], dct['Name']))
产生所需的:
1 Hello
2 There
3 Stack
4 OVerflow
请注意,如果您不关心项目的顺序(1 Hello
或Hello 1
),或者如果您使用的是Python 3.6+,则可以使用更优雅的方法:
for dct in lst:
print('{} {}'.format(*dct.values()))
答案 2 :(得分:1)
我可能会做这样的事情:
item_list = [
{
'Numbers': '1',
'Name': 'Hello'
},
{
'Numbers': '2',
'Name': 'There'
},
{
'Numbers': '3',
'Name': 'Stack'
},
{
'Numbers': '4',
'Name': 'OVerflow'
}
]
for item in item_list:
print (" ".join([item["Numbers"], item["Name"]]))
哪个会产生:
1 Hello
2 There
3 Stack
4 OVerflow
相当多的循环列表,并打印出键/值对。
答案 3 :(得分:0)
我会这样:
for doc in lst:
print(doc['Numbers'], doc['Name'])
会产生想要的结果