如何从两个键打印出值?

时间:2018-10-25 13:06:57

标签: python list loops key-value-store

所以我很难打印出我创建的列表中的两个值。

基本上,我列出了以下内容:

[
  {
    '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

,我不知道在这种情况下,每次循环时,如何只打印出每个值。对于如何继续如上希望的输出

4 个答案:

答案 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 HelloHello 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'])

会产生想要的结果