Как создать словарь, используя элементы списка в качестве ключей и соответствующие им цифры из матрицы в качестве значений? - PullRequest
0 голосов
/ 26 апреля 2020

Итак, у меня есть список

Список = ['a', 'b', 'c', 'd', 'e', ​​'f', 'g']

и файл матрицы в формате .txt

  • 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

Как мне написать код, чтобы мои словарные ключи были элементами списка, а значения - числом в матричном файле? например,

dictionary = {'a': [12,15,16,13], 'b': [9,83,24,72] .....}

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

вы можете сделать что-то подобное

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::]))

with open('t.txt') as f: 
    for i in f: 
        l = i.split() 
        print(l) 
        d[l[0]] = list(map(int, l[1::])) 


output

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]}

0 голосов
/ 26 апреля 2020
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...