Python 如何使用列表中的元素作为键,将矩阵中相应的数字作为值来生成字典?
所以我有一个清单 列表=['a'、'b'、'c'、'd'、'e'、'f'、'g'] 和一个.txt格式的矩阵文件Python 如何使用列表中的元素作为键,将矩阵中相应的数字作为值来生成字典?,python,list,dictionary,matrix,Python,List,Dictionary,Matrix,所以我有一个清单 列表=['a'、'b'、'c'、'd'、'e'、'f'、'g'] 和一个.txt格式的矩阵文件 a 12 15 16 13 b 9 83 24 72 C4521793 d 12 84 33 80 e 29 25 33 47 f 82 11 18 9 g 12 21 93 77 我应该如何编写代码,使我的字典键是列表的元素,值是矩阵文件中的数字? e、 g 字典={'a':[12,15,16,13],'b':[9,83,24,72]…} 你可以这样做 d = {}
- a 12 15 16 13
- b 9 83 24 72
- C4521793
- d 12 84 33 80
- e 29 25 33 47
- f 82 11 18 9
- g 12 21 93 77
你可以这样做
d = {}
with open('t.txt') as f:
for i in f:
l = i.split()
d[l[0]] = l[1::]
In [7]: d
Out[7]:
{'a': ['12', '15', '16', '13'],
'b': ['9', '83', '24', '72'],
'c': ['4', '52', '17', '93'],
'd': ['12', '84', '33', '80'],
'e': ['29', '25', '33', '47'],
'f': ['82', '11', '18', '9'],
'g': ['12', '21', '93', '77']}
使用int值更新
将行更改为d[l[0]]=list(map(int,l[1::])
输出
Out[18]:
{'a': [12, 15, 16, 13],
'b': [9, 83, 24, 72],
'c': [4, 52, 17, 93],
'd': [12, 84, 33, 80],
'e': [29, 25, 33, 47],
'f': [82, 11, 18, 9],
'g': [12, 21, 93, 77]}
到目前为止你试过什么?请包括您的代码。如果您的文件中有密钥,您需要该列表的位置?这将在需要INTEGER列表时创建字符串列表。d[l[0]=[int(i)for i in l[1::]]请不要仅将代码作为答案发布,还要解释您的代码的作用以及它如何解决问题。带有解释的答案通常质量更高,更容易吸引选票。
Out[18]:
{'a': [12, 15, 16, 13],
'b': [9, 83, 24, 72],
'c': [4, 52, 17, 93],
'd': [12, 84, 33, 80],
'e': [29, 25, 33, 47],
'f': [82, 11, 18, 9],
'g': [12, 21, 93, 77]}
dict = {}
with open('file.txt', 'r') as f:
for line in f:
w = line.split() # w is a list of strings in the current line
dict[l[0]] = [int(w[i]) for i in range(1, len(w))]
print(dict)