我有四份名单:
list_a = ['hello', 'yes', 'you']
list_a_ind = [0, 1, 2]
list_b = ['he', 'here', 'great']
list_b_ind = [1, 2, 3]我想要创建一个字典,其中组合式索引作为键,组合元素作为值,结果如下:
dictionary_ab = {(0,1): ('hello', 'he'),
(1,2): ('yes', 'here'),
(2,3): ('you', 'great)}最快的方法是什么?
发布于 2022-09-30 00:36:32
这段代码片段将起作用:
dict(zip(zip(list_a_ind, list_b_ind), zip(list_a, list_b)))发布于 2022-09-30 00:36:24
您可以将dict()直接与zip()一起使用。
out = dict(zip(zip(list_a_ind, list_b_ind), zip(list_a, list_b)))
print(out)指纹:
{(0, 1): ("hello", "he"),
(1, 2): ("yes", "here"),
(2, 3): ("you", "great")}发布于 2022-09-30 00:46:23
简单的方法是通过一个命令解压缩和重新打包单个zip:
{(a, b): (c, d) for a, b, c, d in zip(list_a_ind, list_b_ind, list_a, list_b)}对于简短的示例输入,这是最快的解决方案(它具有最低的设置开销),但是嵌套的zip解决方案最终赢得足够大的输入(它具有较低的每项开销)。这对我来说有点容易读懂,对你正在做的事情和如何做的描述要多一点,但不足以让我更喜欢它(不管用哪种方式都很好)。
https://stackoverflow.com/questions/73902852
复制相似问题