第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嵌套字典問題

嵌套字典問題

明月笑刀無情 2021-04-02 18:19:34
我需要創(chuàng)建一個使用CSV文件并返回嵌套字典的程序。外字典的鍵應該是第二行中的每一行中的第一個值(以便省略具有列名的行)。外層字典中每個鍵的值應該是另一個字典,我將在下面解釋。內部字典的鍵應為列名,而值應為與每一行中該列對應的值。例子:對于這樣的CSV文件:column1, column2, column3, column44,12,5,1129,47,23,4166,1,98,78我想以這種形式打印出數據:my_dict = {'4': {'column1':'4','column2':'12', 'column3':'5', 'column4':'11'},'29': {'column1':'29', 'column2':'47', 'column3':'23', 'column4':'41'},'66': {'column1':'66', 'column2':'1', 'column3':'98', 'column4':'78'}}到目前為止,我所獲得的最接近的數字(還差得遠):import csvimport collectionsdef csv_to_dict(file, delimiter, quotechar):list_inside_dict = collections.defaultdict(list)with open(file, newline = '') as csvfile:    reader = csv.DictReader(csvfile, delimiter=delimiter, quotechar=quotechar)    for row in reader:        for (k,v) in row.items():             list_inside_dict[k].append(v)return dict(list_inside_dict)如果我嘗試使用delimiter = ",",和上面的示例CSV文件運行該函數quotechar = "'",它將返回以下內容:{'column1': ['4', '29', '66'], ' column2': ['12', '47', '1'], ' column3': ['5', '23', '98'], ' column4': ['11', '41', '78']}在這一點上我迷路了。我試圖改變:list_inside_dict = collections.defaultdict(list)為了list_inside_dict = collections.defaultdict(dict)然后,只需更改每個鍵的值即可,因為我無法追加到字典中,但是一切都變得非?;靵y。所以我從頭開始,發(fā)現(xiàn)我到達了同一個地方。
查看完整描述

3 回答

?
當年話下

TA貢獻1890條經驗 獲得超9個贊

您可以使用字典理解:


import csv

with open('filename.csv') as f:

  header, *data = csv.reader(f)

  final_dict = {a:dict(zip(header, [a, *b])) for a, *b in data}

輸出:


{'4': {'column1': '4', ' column2': '12', ' column3': '5', ' column4': '11'}, 

 '29': {'column1': '29', ' column2': '47', ' column3': '23', ' column4': '41'}, 

 '66': {'column1': '66', ' column2': '1', ' column3': '98', ' column4': '78'}}


查看完整回答
反對 回復 2021-04-27
  • 3 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號