如何用含2个元素的列表作字典键,关联另外两个列表为对应值?
解决方法
你需要把列表a的元素转为整数作为键,将b和c分别作为对应键的完整列表值。可以用两种方式实现:
方式一:直接构造字典
适合元素数量固定的场景,代码直观:
a = ['1','2'] b = ['3','4','5'] c = ['6','7','8'] d = {int(a[0]): b, int(a[1]): c}
方式二:通用化实现
如果后续键列表或值列表的数量有扩展需求,这种方式更灵活:
a = ['1','2'] b = ['3','4','5'] c = ['6','7','8'] # 将a的元素转为整数键 keys = [int(key) for key in a] # 把b、c打包成值的列表 values = [b, c] # 用zip配对键和值,再转成字典 d = dict(zip(keys, values))
两种方式最终都能得到你想要的结果:
{1: ['3', '4', '5'], 2: ['6', '7', '8']}
之前用dict(zip())没成功,大概率是直接把a、b、c一起传入zip了——这样会把b和c的单个元素和a的元素配对,而不是把整个b、c作为单个值。
内容的提问来源于stack exchange,提问作者Victor Racy
相关产品推荐
相关产品推荐

