Как мне преобразовать список строк в список целых внутри словаря? - PullRequest
0 голосов
/ 25 сентября 2019

Итак, я записываю данные из CSV-файла в Python, чтобы я мог немного поработать с ним.Данные в CSV-файле являются фиктивными оценками учащихся;так имя студента, а затем 5 баллов.Я использую следующий код, чтобы поместить все данные в словарь:

csvfile = open('Lab03-testdata.csv', newline='')
linesreader = csv.reader(csvfile, delimiter=';')

testScores = {}

for l in linesreader:
    testScores[l[0]] = l[1:]

Это работает, но каждый ключ имеет соответствующий список строк не целых.Мой вывод выглядит примерно так:

'John Doe': ['100', '55', '34', '22', '99']

Чтобы выполнить любую математику, мне пришлось использовать цикл for, чтобы добавить результаты тестов, которые я хочу, в отдельные списки и преобразовать их в целые числа какЯ делаю это.Однако я хочу, чтобы все данные в словаре были уже целочисленными.Я хочу что-то еще, как это:

'John Doe': [100, 55, 34, 22, 99]

Так как я могу преобразовать список значений в целые числа?

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Добавьте int(...) приведение к этому коду:

for l in linesreader:
    testScores[l[0]] = l[1:]

Обратите внимание на изменение в цикле for:

for l in linesreader:
    testScores[l[0]] = [int(i) for i in l[1:]]
0 голосов
/ 25 сентября 2019

вы должны конвертировать из str в int ваши данные

for l in linesreader:
    testScores[l[0]] = list(map(int, l[1:]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...