簡體   English   中英

嵌套列出到字典 python

[英]nested listed to dictionary python

我有一個看起來像這樣的嵌套列表:

[[0, 100, 47, 105, 120, 4, 46, 115, 103, 131, 14, 74, 8, 122, 91, 0],
 [0, 36, 112, 123, 25, 117, 55, 26, 17, 113, 121, 118, 107, 114, 104, 64, 0]]

我想把它轉換成一個像這樣的字典:

{1:[0, 100, 47, 105, 120, 4, 46, 115, 103, 131, 14, 74, 8, 122, 91, 0],
 2:[0, 36, 112, 123, 25, 117, 55, 26, 17, 113, 121, 118, 107, 114, 104, 64, 0]}

我試圖在列表理解中做到這一點,但我似乎找不到正確的答案。 這行不通,因為我想開始 1 而不是 0。

您可以使用dict comprehension而不是列表理解,使用range(len(a)

output = {i+1:a[i] for i in range(len(a))}

Output:

{1: [0, 100, 47, 105, 120, 4, 46, 115, 103, 131, 14, 74, 8, 122, 91, 0],
 2: [0,36,112,123,25,117,55,26,17,113,121,118,107,114,104,64,0]}
lst = [
    [0, 100, 47, 105, 120, 4, 46, 115, 103, 131, 14, 74, 8, 122, 91, 0],
    [0, 36, 112, 123, 25, 117, 55, 26, 17, 113, 121, 118, 107, 114, 104, 64, 0],
]

result = {index: sub_list for index, sub_list in enumerate(lst, start=1)}


print(result)

Output:

{
    1: [0, 100, 47, 105, 120, 4, 46, 115, 103, 131, 14, 74, 8, 122, 91, 0],
    2: [0, 36, 112, 123, 25, 117, 55, 26, 17, 113, 121, 118, 107, 114, 104, 64, 0],
}
from itertools import count

lists = ...

print(dict(zip(count(1), lists)))

以下是我的做法:

lis=[[0, 100, 47, 105, 120, 4, 46, 115, 103, 131, 14, 74, 8, 122, 91, 0],
     [0, 36, 112, 123, 25, 117, 55, 26, 17, 113, 121, 118, 107, 114, 104, 64, 0]]
dicti={}
for i in range(1,len(lis)+1):
    dicti[i]=lis[i-1]
print(dicti)

我創建了一個空的**dictionary** 然后,我遍歷了該list並將分配整數的dictionaryvalues附加到keys

注意我是如何使用range(1, len(lis)+1)的,所以i的第一個值為1

然后我們可以使用for loopkey:value對添加到dictionary中。

這給出了所需的 output:

{1: [0, 100, 47, 105, 120, 4, 46, 115, 103, 131, 14, 74, 8, 122, 91, 0], 2: [0, 36, 112, 123, 25, 117, 55, 26, 17, 113, 121, 118, 107, 114, 104, 64, 0]}

希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM