遍历作为字典一部分的多个列表中的值

问题描述 投票:0回答:1

我的字典就是这样

proj_d = {
    'key_A:': [u'1361808,1359404,1357929'],
    'key_B:': [u'1361808,1359404,1357929'],
    'Key_C:': [u'1361808,1359404,1357929'],
    'Key_D:': [u'1361808,1359404,1357929']
}

这是方法的返回格式。

我受阻的区域是迭代每个列表中的项目,因为无法使用索引值和键字符串访问列表。

需要协助拆开清单中的物品。

我正在使用python 2.7(如果需要,我可以切换到python 3.7)

python python-2.7 dictionary iteration key-value
1个回答
0
投票

列表中的项目是字符串,这就是为什么您需要先使用split将它们分开的原因。另外,您还提到可以切换到Python3.7,我建议您这样做,因为Python2.7在一月份就已经寿终正寝。

for k, v in proj_d.items():
    print(f"Currently inside key {k}")
    for val in v[0].split(','):
        print(f"Currently at value {val}")

Currently inside key key_A:
Currently at value 1361808
Currently at value 1359404
Currently at value 1357929
Currently inside key key_B:
Currently at value 1361808
Currently at value 1359404
Currently at value 1357929
Currently inside key Key_C:
Currently at value 1361808
Currently at value 1359404
Currently at value 1357929
Currently inside key Key_D:
Currently at value 1361808
Currently at value 1359404
Currently at value 1357929

为了使其更通用,您的列表可以容纳多个字符串,请将其更改为以下字符串。

from itertools import chain

for k, v in proj_d.items():
    print(f"Currently inside key {k}")
    vals = (item.split(',') for item in v)
    for val in chain.from_iterable(vals):
        print(f"Currently at value {val}")
© www.soinside.com 2019 - 2024. All rights reserved.