在字典 (python) 中查找 key/appending 个键的多个值时出现问题
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])
无需检查密钥是否存在。
我正在尝试创建一个将值保存到键的字典,如果该键已经存在,该值将附加到该键以生成一个值列表。我正在使用 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])
无需检查密钥是否存在。