遍历字典中的列表

我有一本看起来像这样的字典:


{

   "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"]

如何逐个循环遍历每个键值,直到到达最后一个列表的数组值的末尾?对于每个键,所有列表的长度相同。


阿晨1998
浏览 269回答 3
3回答

呼唤远方

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']

湖上湖

使用这个例子: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']

偶然的你

假设所有值具有相同的长度: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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python