如何将dict(键和值)的值分配到新列表中?以及如何在字符串字典中打印键和值?

时间:2018-08-03 03:35:22

标签: python string list dictionary

我想打印字典字符串的键和值。例如,

a = [{'1': '0'}, {'9': '2'}, {'4': '3'}, {'3': '5'}, {'0': '7'}, [], [], [], []]

我尝试过这个:

for x in a:
    for y in x.values():
        print(y)

不起作用

for x in a:
    for y in x.itervalues():
        print(y)

不起作用

for x in a:
    for y in x.items():
        print(y)

不起作用

是否可以这样打印? :

1 0
9 2
4 3
3 5
0 7

keys = 1,9,4,3,0
values = 0,2,3,5,7

2 个答案:

答案 0 :(得分:2)

一种可能的解决方案是使用列表理解来过滤掉非字典,然后将字典转换为键值元组,并用NameError分隔键和值:

zip

答案 1 :(得分:1)

如果您希望并排键/值对输出,则可以执行以下操作(如果任何词典包含多个键/值对,则需要更改代码):< / p>

for x in a:
    if isinstance(x, dict):
        # "if isinstance" is here just to ignore the lists in your list,
        # you may want to do something else with those
        print(x.keys(), x.values())

# (['1'], ['0'])
# (['9'], ['2'])
# (['4'], ['3'])
# (['3'], ['5'])
# (['0'], ['7'])

如果您需要处理字典项中的多个键/值对并仅打印值(减去格式),则类似以下内容:

for x in a:
    if isinstance(x, dict):
        tups = x.items()
        for tup in tups:
            print('{} {}'.format(tup[0], tup[1]))

# 1 0
# 9 2
# 4 3
# 3 5
# 0 7