繁体   English   中英

python-合并列表并使其成为字典

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM