首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >压缩四个列表以创建包含两个列表中的键和另两个列表中的值的字典

压缩四个列表以创建包含两个列表中的键和另两个列表中的值的字典
EN

Stack Overflow用户
提问于 2022-09-30 00:33:02
回答 3查看 37关注 0票数 0

我有四份名单:

代码语言:javascript
复制
list_a = ['hello', 'yes', 'you']
list_a_ind = [0, 1, 2]
list_b = ['he', 'here', 'great'] 
list_b_ind = [1, 2, 3]

我想要创建一个字典,其中组合式索引作为键,组合元素作为值,结果如下:

代码语言:javascript
复制
dictionary_ab = {(0,1): ('hello', 'he'), 
                 (1,2): ('yes', 'here'), 
                 (2,3): ('you', 'great)}

最快的方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-09-30 00:36:32

这段代码片段将起作用:

代码语言:javascript
复制
dict(zip(zip(list_a_ind, list_b_ind), zip(list_a, list_b)))
票数 2
EN

Stack Overflow用户

发布于 2022-09-30 00:36:24

您可以将dict()直接与zip()一起使用。

代码语言:javascript
复制
out = dict(zip(zip(list_a_ind, list_b_ind), zip(list_a, list_b)))
print(out)

指纹:

代码语言:javascript
复制
{(0, 1): ("hello", "he"), 
 (1, 2): ("yes", "here"), 
 (2, 3): ("you", "great")}
票数 3
EN

Stack Overflow用户

发布于 2022-09-30 00:46:23

简单的方法是通过一个命令解压缩和重新打包单个zip

代码语言:javascript
复制
{(a, b): (c, d) for a, b, c, d in zip(list_a_ind, list_b_ind, list_a, list_b)}

对于简短的示例输入,这是最快的解决方案(它具有最低的设置开销),但是嵌套的zip解决方案最终赢得足够大的输入(它具有较低的每项开销)。这对我来说有点容易读懂,对你正在做的事情和如何做的描述要多一点,但不足以让我更喜欢它(不管用哪种方式都很好)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73902852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档