[英]python- combining list and making them a dictionary
我有两个清单
one=[1,3]
elements=["a","b","c","d"]
所以,我想创建一个字典-其中one
被视为键, elements
被视为值,输出应像这样
{'1': ['a'], '3': [["b"],["c"],["d"]] }
假定元素的长度始终> = 1的长度,并假定您尝试将1与元素之间的一对一映射:
d= {}
for item in one:
d[str(item)] = element[:item]
del element[:item]
因此,这将根据您的示例创建一个列表
一个解决方案,应该任意长度工作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]})
您可以尝试在每次迭代中将列表拼接为您的键值,这还应注意基于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':[]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.