在字典(python)中查找键/向键追加多个值时出现问题

2024-04-25 22:17:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个字典,将保存一个值到一个键,如果该键已经存在,该值将被附加到该键以生成一个值列表。我使用的是python3,所以dict.has\键方法已被否决,有人能给我指出正确的方向吗?你知道吗

你知道吗二进制.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"))

Tags: ofimporttxtinputgetsyslineresult
1条回答
网友
1楼 · 发布于 2024-04-25 22:17:33

使用defaultdict,如果键存在,我们将追加项,如果不存在,我们将创建键,然后追加项:

from collections import defaultdict

d = defaultdict(list)

d[key].append(item)

在代码中:

result = defaultdict(list)

然后简单地说:

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

不需要检查密钥是否存在。你知道吗

相关问题 更多 >