合并2个不同的列表到字典

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并2个不同的列表到字典相关的知识,希望对你有一定的参考价值。

我试图将两个不同长度的列表合并到字典中。请帮忙

listA = ['2','4','6','8','10','12','14','16','18','20','22','24','26','28']
listB = ['host1','host2','host3','host4']

预期产量:

{
 host1: [2,10,18,26], 
 host2: [4,12,20,28], 
 host3: [6,14,22], 
 host4 : [8,16,24]
}
答案

看起来你想要一本字典,其中listA中的每四个元素都是listB的成员。您可以使用python的列表切片和使用生成器函数来执行此操作:

s = len(listB)
output = {listB[i]: listA[i::s] for i in range(s)}

这应该是相当简单的。花式列表切片的东西是listA[i::s],它从sth元素开始获取listA的每个ith元素。

另一答案

您可以使用以下dict构造函数,其中包含键的zip和切片子列表的列表:

print(dict(zip(listB, [listA[i::len(listB)] for i in range(len(listB))])))

这输出:

{'host1': ['2', '10', '18', '26'], 'host2': ['4', '12', '20', '28'], 'host3': ['6', '14', '22'], 'host4': ['8', '16', '24']}

以上是关于合并2个不同的列表到字典的主要内容,如果未能解决你的问题,请参考以下文章

嵌套字典。合并公共键并将值附加到列表中。 0 值未附加。里面的代码

如何将字典列表合并到单个字典中?

Python代码阅读(第19篇):合并多个字典

如果它们共享任何键值对,如何合并来自不同列表的多个字典?

python列表中字典按指定相同的键值对合并到一个列表中

将元组列表合并到字典中