如何打印出两个键的值?

How to print out values from two keys?

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

基本上我做了一个清单:

[
  {
    'Numbers': '1',
    'Name': 'Hello'
  },
  {
    'Numbers': '2',
    'Name': 'There'
  },
  {
    'Numbers': '3',
    'Name': 'Stack'
  },
  {
    'Numbers': '4',
    'Name': 'OVerflow'
  }
]

现在如果我基本上调用那个函数是

names_number()

它会给我那个值。

所以你当然会使用 for 循环,它会自己打印每一个,所以在这种情况下,循环看起来像:

对于 names_number() 中的我: 打印(我)

那会给我:

{'Numbers': '1', 'Name': 'Hello'}
{'Numbers': '2', 'Name': 'There'}
{'Numbers': '3', 'Name': 'Stack'}

现在的问题是我只想打印出来

1 Hello
2 There
3 Stack

而且我不知道在那种情况下每次 for 循环时我将如何只打印出每一个的值。我将不胜感激有关如何继续像上面希望的那样输出的任何提示或解决方案

怎么样:

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()))

我会这样做:

for doc in lst:
    print(doc['Numbers'], doc['Name'])

产生所需的结果

我可能会这样做:

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

几乎循环列表,并打印出 key/value 对。

print 的默认分隔符是单个空格,因此您使用简单的 for 循环:

for d in L:
    print(d['Numbers'], d['Name'])

或使用 f-strings (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