我有两个清单
one=[1,3]
elements=["a","b","c","d"]
所以,我想创建一个字典 - 其中one
被视为键,elements
被视为值,输出应该是这样的
{'1': ['a'], '3': [["b"],["c"],["d"]] }
答案 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':[]}