python-组合列表并使它们成为字典

时间:2016-03-03 19:17:55

标签: python

我有两个清单

one=[1,3]
elements=["a","b","c","d"]

所以,我想创建一个字典 - 其中one被视为键,elements被视为值,输出应该是这样的

{'1': ['a'], '3': [["b"],["c"],["d"]] }

3 个答案:

答案 0 :(得分:3)

假设元素的长度总是> = =长度为1,并假设您尝试在一个元素和元素之间进行一对一映射:

d= {}
for item in one:
    d[str(item)] = element[:item]
    del element[:item]

因此,这将根据您的示例创建一个列表

答案 1 :(得分:1)

适用于任意长度one的解决方案:

d = {}

# Create a 1-to-1 mapping for the first n-1 items in `one`
for i in one[:-1]:
    d[i] = [elements.pop(0)]

# Append the remainder of `elements`
d[one[-1]] = [elements]

或者使用dict-comp:

d = {i:[elements.pop(0)] for i in one[:-1]}.
d[one[-1]] = [elements]

或者在一条易于理解的易读行中:

d = {i:[elements.pop(0)] for i in one[:-1]}.update({one[-1]:[elements]})

答案 2 :(得分:1)

您可以尝试在每次迭代中为您的键值拼接列表,这也应该根据len(key)

处理不可用的元素
outDict = {}
start = 0
for key in keys:
    outDict[str(key)] = elements[start:start+key]
    start+=key

print(outDict)

运行类似的东西

keys=[1,2,3]
elements=["a","b","c"]
  
    

{'1':['a'],'2':['b','c'],'3':[]}