簡體   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