我想转换但出现错误
A 123 132 21
B 34 293 91
d = {}
with open("ab.txt") as f:
for line in f:
(key, val) = line.split()
d[(key)] = val
print(d)
取决于您要实现的目标,或者:
line.split()
替换line.split(maxsplit=1)
-这样字典的值将是类似于"123 132 21"
(key, val) = line.split()
替换(key, *val) = line.split()
-这样,字典的值将是像[123, 132, 21]
的列表您可能收到“ ValueError:太多值以至无法解包(预期2)”错误。
我假设您正在尝试创建一个字典,结果将是:
d = {'A': ['123', '132', '21'], 'B': ['34', '293', '91']}
如果是这种情况,则需要:
d = {}
with open("ab.txt") as f:
for line in f:
(key, *val) = line.split() # this will allow val to become a list of the remaining values
d[key] = val
print(d)
您只是在*
之前错过了val
。
Yon可以这样做:
fichier = open("ab.txt", 'r')
d = {}
for line in fichier.readlines():
d[line[0]] = line[1:].rstrip()
print(d)
输出:
{'A': ' 123 132 21', 'B': ' 34 293 91'}
如果您听不懂,请问我:)。