簡體   English   中英

如何從csv文件讀取2d詞典?

[英]How to read a 2d Dictionary from a csv file?

我有一個CSV文件,想讀取該文件以制作2D詞典。

我嘗試創建一個新字典:

f = csv.reader(open('test.csv', 'r'))
for row in f:
    k, v, p  = row 
    markovTransition[k] = {v: p}

上面的代碼提供了我想要的輸出,但當第一個字典的鍵相同時,它將覆蓋鍵。

CSV文件的格式為:

A,A1,3
A,A2,4
B,B1,6
C,C3,7
C,C2,3
C,C5,1

所需的字典是:

{A: {A1: 3, A2: 4}, B: {B1: 6}, C: {C3: 7, C2: 3, C5: 1}

當前的字典是:

{A: {A2: 4}, B: {B1: 6}, C{C5: 1}}

如何從CSV文件創建2d詞典? 謝謝。

這是defaultdict的一個很好的用例:

markovTransition=collections.defaultdict(dict)
f = csv.reader(open('test.csv', 'r'))
for row in f:
    k, v, p  = row 
    markovTransition[k][v] = p

嘗試這個:

markovTransition = {}
f = csv.reader(open('test.csv', 'r'))
for row in f:
    k, v, p  = row

    if k in markovTransition.keys():  # Check if already exists and then push it.
        markovTransition[k].update({v: p})
    else:
        markovTransition[k] = {v: p}

暫無
暫無

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

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