簡體   English   中英

將一個列表中的元素轉換為字典中的鍵和值

[英]Convert elements in ONE list to keys and values in a dictionary

我正在尋找一種將列表轉換為字典的方法,如下所示。 這可能嗎? 提前致謝。

列表 = ["1/a", "2/b", "3/c"]

dict = {"1": "a", "2": "b", "3": "c"}

當然這是可能的。

首先,您可以使用e.split("/")拆分列表的元素,這將給出一個列表,例如splitted = ["1", "a"] 您可以將第一個元素分配給鍵,將第二個元素分配給值:

k = splitted[0]
v = splitted[1]

或另一種表達方式:

k,v = splitted

然后你可以迭代你的列表來構建你的字典,所以如果我們把它包起來(你不應該調用一個列表list因為list是一種類型和一個已經存在的標識符:

d = {}
for e in elements:
     k,v = e.split("/")
     d[k] = v

您也可以在一行中使用 dict 理解來做到這一點:

d = {k:v for k,v in [e.split("/") for e in elements]}

是的你可以。

如果您想在“/”(即第二個字符)之后擁有所有內容,您可以執行以下操作:

dict = {c[0]:c[2:] for c in list}

如果您想在 '/' 之后擁有所有內容(但可能不是第二個字符),您可以執行以下操作:

dict = {c[0]:c.split('/')[1] for c in list}

這實際上取決於您擁有的輸入以及您想要的輸出

你可以這樣做。

lista = ["1/a", "2/b", "3/c"]
new_dict = {}
for val in lista:    
    new_dict.update({val[0]:val[2]})
print(new_dict)

嘗試這個

list = ["1as/aasc", "2sa/bef", "3edc/cadeef"]
dict = {i.split('/')[0]:i.split('/')[1] for i in list}

答案將是

{'1as': 'aasc', '2sa': 'bef', '3edc': 'cadeef'}

我給出了一個不同的測試用例。 希望這能回答你的問題。

暫無
暫無

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

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