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