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

时间:2018-09-10 03:10:02

标签: python

我正在尝试将两个不同长度的列表合并到字典中。请帮助

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]
}

2 个答案:

答案 0 :(得分:3)

您似乎想拥有一个字典,其中sort中的每个第四个元素都是listA的成员。您可以使用python的列表切片和生成器功能来做到这一点:

listB

这应该很简单。花式列表切片的对象是s = len(listB) output = {listB[i]: listA[i::s] for i in range(s)} ,它从第listA[i::s]个元素开始,占据s的第listA个元素。

答案 1 :(得分:1)

您可以将以下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']}