为了账号安全,请及时绑定邮箱和手机立即绑定

遍历字典中的列表

遍历字典中的列表

阿晨1998 2022-01-18 17:20:41
我有一本看起来像这样的字典:{   "month": ["January", "February", "March"],   "volume": [1,2,3],   "target": [6,8,5]}我想遍历每个键和值,以便我可以制作一个如下所示的列表:["month: January, volume: 1, target: 6", "month: February, volume: 2, target: 8", "month: March, volume: 3, target: 5"]如何逐个循环遍历每个键值,直到到达最后一个列表的数组值的末尾?对于每个键,所有列表的长度相同。
查看完整描述

3 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

d = {

   "month": ["January", "February", "March"],

   "volume": [1,2,3],

   "target": [6,8,5]

}


keys = tuple(d)  # ('month', 'volume', 'target')

values = tuple(zip(*d.values()))  # (('January', 1, 6), ('February', 2, 8), ('March', 3, 5))


your_list = [

    ', '.join(

        f'{keys[i]}: {value[i]}' 

        for i in range(len(keys))  # range(3) in this case

    ) 

    for value in values

]


print(your_list)

输出:


['month: January, volume: 1, target: 6',

 'month: February, volume: 2, target: 8',

 'month: March, volume: 3, target: 5']


查看完整回答
反对 回复 2022-01-18
?
湖上湖

TA贡献2003条经验 获得超2个赞

使用这个例子:


di = {

   "month": ["January", "February", "March"],

   "volume": [1,2,3],

   "target": [6,8,5],

}

一个想法是将其转换为列表


li = [ [k + ": " +str(v) for v in v_list] for k,v_list in test_dict.items()]

然后使用 zip 进行连接


[ ', '.join(l) for l in zip(*li) ]

这是结果:


['month: January, volume: 1, target: 6',

 'month: February, volume: 2, target: 8',

 'month: March, volume: 3, target: 5']


查看完整回答
反对 回复 2022-01-18
?
偶然的你

TA贡献1841条经验 获得超3个赞

假设所有值具有相同的长度:


di = {

    "month": ["January", "February", "March"],

    "volume": [1,2,3],

    "target": [6,8,5],

}

sample_length = len(list(di.values())[0])

final_list = []

for j in range(sample_length):

    list_item = []

    for key, val in di.items():

        list_item.append('{}: {}'.format(key, val[j]))

    final_list.append(', '.join(list_item))

print(final_list)


输出:


['month: January, volume: 1, target: 6', 'month: February, volume: 2, target: 8', 'month: March, volume: 3, target: 5']




查看完整回答
反对 回复 2022-01-18
  • 3 回答
  • 0 关注
  • 268 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号