簡體   English   中英

將具有多個值的列表轉換為字典

[英]Converting a list with multiple values into a dictionary

我有以下列表,我想將其轉換為字典,其中每個項目開頭的 4 位值成為 id。

['3574,A+,2021-03-24', '3575,O+,2021-04-03', '3576,AB-,2021-04-09', '3580,AB+,2021-04-27', '3589,A+,2021-05-08', '3590,B-,2021-05-11']

我嘗試了許多不同的方法,但似乎不起作用。

您可以使用str.splitmap和字典理解

# data holds the list you have provided
{splitted[0]:splitted[1:] for splitted in map(lambda item:item.split(','), data)}

OUTPUT

Out[35]: 
{'3574': ['A+', '2021-03-24'],
 '3575': ['O+', '2021-04-03'],
 '3576': ['AB-', '2021-04-09'],
 '3580': ['AB+', '2021-04-27'],
 '3589': ['A+', '2021-05-08'],
 '3590': ['B-', '2021-05-11']}

您可以將字典理解與str.split一起使用:

lst = [
    "3574,A+,2021-03-24",
    "3575,O+,2021-04-03",
    "3576,AB-,2021-04-09",
    "3580,AB+,2021-04-27",
    "3589,A+,2021-05-08",
    "3590,B-,2021-05-11",
]

out = {int(v.split(",")[0]): v.split(",")[1:] for v in lst}
print(out)

印刷:

{
    3574: ["A+", "2021-03-24"],
    3575: ["O+", "2021-04-03"],
    3576: ["AB-", "2021-04-09"],
    3580: ["AB+", "2021-04-27"],
    3589: ["A+", "2021-05-08"],
    3590: ["B-", "2021-05-11"],
}

這是執行我認為您要求的代碼的代碼。 我還在代碼中添加了注釋以進行更多說明。

my_list = ['3574,A+,2021-03-24',
       '3575,O+,2021-04-03',
       '3576,AB-,2021-04-09',
       '3580,AB+,2021-04-27',
       '3589,A+,2021-05-08',
       '3590,B-,2021-05-11']#your list
my_dict = {}#The dictionary you want to put the list into

print("Your list:", my_list, "\n")

for item in my_list:#cycles through every item in your list  
    ID, value = item.split(",", 1)#Splits the item in your list only once (when it sees the first comma)
    print(ID + ": " + value)
    my_dict[ID] = value#Add the ID and value to your dictionary

print("\n" + "Your desired dictionary:", my_dict)

哪個輸出:

Your list: ['3574,A+,2021-03-24', '3575,O+,2021-04-03', '3576,AB-,2021-04-09', '3580,AB+,2021-04-27', '3589,A+,2021-05-08', '3590,B-,2021-05-11'] 

3574: A+,2021-03-24
3575: O+,2021-04-03
3576: AB-,2021-04-09
3580: AB+,2021-04-27
3589: A+,2021-05-08
3590: B-,2021-05-11

Your desired dictionary: {'3574': 'A+,2021-03-24', '3575': 'O+,2021-04-03', '3576': 'AB-,2021-04-09', '3580': 'AB+,2021-04-27', '3589': 'A+,2021-05-08', '3590': 'B-,2021-05-11'}

享受!

嘗試:

result = dict(i.split(',', 1) for i in lst)

OUTPUT:

{'3574': 'A+,2021-03-24',
 '3575': 'O+,2021-04-03',
 '3576': 'AB-,2021-04-09',
 '3580': 'AB+,2021-04-27',
 '3589': 'A+,2021-05-08',
 '3590': 'B-,2021-05-11'}

暫無
暫無

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

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