簡體   English   中英

在字典中找到鍵/在鍵中附加多個值時遇到問題(Python)

[英]Problems finding key/appending multiple values to a key in dictionary (python)

我正在嘗試制作一個將值保存到鍵的字典,如果鍵已經存在,則該值將附加到鍵上以構成值列表。 我正在使用python 3,因此dict.has_key方法已棄用,有人可以向我指出正確的方向嗎?

Binary.txt:

N = N D
N = D
D = 0
D = 1



import sys
import string

#default length of 3
stringLength = 3

#get last argument of command line(file)
filename1 = sys.argv[-1]


#get a length from user
try:
    stringLength = int(input('Length? '))
    filename = input('Filename: ')
except ValueError:
    print("Not a number")

#checks
print(stringLength)
print(filename)

def str2dict(filename="Binary.txt"):
    result = {}
    with open(filename, "r") as grammar:
        #read file 
        lines = grammar.readlines()
        count = 0
        #loop through
        for line in lines:
            #append info 
            print(line)
            line = line.rstrip('\n')

            if line[0] in result:
                result[line[0]].append(line.split('=')[1])

            else: 

                result[line[0]] = line.split('=')[1]
            print (result)
    return result

print (str2dict("Binary.txt"))

使用defaultdict ,如果鍵存在,我們將添加項,如果不存在,我們將創建鍵,然后添加項:

from collections import defaultdict

d = defaultdict(list)

d[key].append(item)

在您的代碼中:

result = defaultdict(list)

然后簡單地:

 result[line[0]].append(line.split('=')[1])

無需檢查密鑰是否存在。

暫無
暫無

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

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