如何使用嵌套列表值从 defaultdict 中提取值?

How to extract values from defaultdict with nested list values?

我有一个带有嵌套列表值的 defaultdict,我需要提取输出中显示的值。

dd = defaultdict(list)
print(dd)

输入:

defaultdict(<class 'list'>, {
'1': [[['Peter', '100'], ['John', '200'], ['Carlos', '150'], ['Rick', '25']], ['HR']], 
'2': [[['Albert', '200']], ['Travel']], 
'3': [[['Mick', '300']], ['IT']]
})

输出:

1,Peter,100,HR
1,John,200,HR
1,Carlos,150,HR
1,Rick,25,HR
2,Albert,200,Travel
3,Mick,300,IT

您需要迭代列表值以获得所需的输出:

for k, v in dd.items():
    for vv in v[0]:
       print(','.join([k, vv[0], vv[1], v[1][0]]))

这里 v[0] 是您的姓名和号码列表,即 [['Peter', '100']...]v[1] 是部门列表,即 ['HR'].

以上代码将打印:

1,Peter,100,HR
1,John,200,HR
1,Carlos,150,HR
1,Rick,25,HR
2,Albert,200,Travel
3,Mick,300,IT

您可以使用简单的嵌套循环:

for k,v in dd.items():
    for e in v[0]:
        print(','.join((k,*e,v[1][0])))

输出:

1,Peter,100,HR
1,John,200,HR
1,Carlos,150,HR
1,Rick,25,HR
2,Albert,200,Travel
3,Mick,300,IT