在python中,如何制作列表函数的字典

2024-09-28 22:19:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下清单

([1, 2, 3, 4], ['SHARD', 'METAL_WORK', 'FLINT', 'BONE'], ['BRONZE', 'IRON_AGE', 'MESOLITHIC', 'RECENT'], ['DOMESTIC', 'DECORATIVE', 'HUNTING', 'FOOD'])

我想把它放到python字典中,这样第一个列表就成为键值,下面每个列表上的第一个项都连接到字典中的第一个项,以此类推。这样{1: [SHARD, BRONZE, DOMESTIC]}等等

得到这个的正确脚本是什么


Tags: 列表age字典flintworkmetalshardrecent
3条回答

您可以使用zip:

l1 = ([1, 2, 3, 4], ['SHARD', 'METAL_WORK', 'FLINT', 'BONE'], ['BRONZE', 'IRON_AGE', 'MESOLITHIC', 'RECENT'], ['DOMESTIC', 'DECORATIVE', 'HUNTING', 'FOOD'])
result = {k:list(v) for k, v in zip(l1[0], zip(*l1[1:])) }
print(result)

输出

{1: ['SHARD', 'BRONZE', 'DOMESTIC'],
 2: ['METAL_WORK', 'IRON_AGE', 'DECORATIVE'],
 3: ['FLINT', 'MESOLITHIC', 'HUNTING'],
 4: ['BONE', 'RECENT', 'FOOD']}

您只需要将子列表压缩在一起,然后将结果解压缩到一个键和值列表中。差不多

lists = ([1, 2, 3, 4], ['SHARD', 'METAL_WORK', 'FLINT', 'BONE'], ['BRONZE', 'IRON_AGE', 'MESOLITHIC', 'RECENT'], ['DOMESTIC', 'DECORATIVE', 'HUNTING', 'FOOD'])

d = {key: values for key, *values in zip(*lists)}

导致

{1: ['SHARD', 'BRONZE', 'DOMESTIC'],
 2: ['METAL_WORK', 'IRON_AGE', 'DECORATIVE'],
 3: ['FLINT', 'MESOLITHIC', 'HUNTING'],
 4: ['BONE', 'RECENT', 'FOOD']}
my_list=  [[j[i] for j in t[1:] ] for i in range(4)]
my_dic = { k: v for k ,v in zip (range(1,5),my_list)}

output:
{1: ['SHARD', 'BRONZE', 'DOMESTIC'],
 2: ['METAL_WORK', 'IRON_AGE', 'DECORATIVE'],
 3: ['FLINT', 'MESOLITHIC', 'HUNTING'],
 4: ['BONE', 'RECENT', 'FOOD']}

相关问题 更多 >