Как преобразовать список чисел в целые числа в Python?
Oct 19 2020
Итак, у меня есть список списков чисел из файла .txt, загруженного в Python:
ls = [['3456', '937'], ['3666', '54533'], ['24456', '83279'], ['344516', '10410']...]
Как мне преобразовать числа ( type: list) в целые числа, но оставить их в этом списке?
Т.е. желаемый результат:
[[3456, 937], [3666, 54533], [24456, 83279], [344516, 10410]...]
Я пробовал использовать это:
ls = [int(i) for i in ls]
Но получите ошибку: аргумент int () должен быть строкой.
Кто-нибудь знает, как сделать преобразование в желаемый результат? Благодаря!
Ответы
1 dmitryro Oct 19 2020 at 09:29
Вы можете использовать еще одно понимание внутри:
ls = [[int(i) for i in k] for k in ls]
1 PacketLoss Oct 19 2020 at 09:29
Вы можете использовать mapи составить список.
ls = [['3456', '937'], ['3666', '54533'], ['24456', '83279'], ['344516', '10410']]
>>> [list(map(int, i)) for i in ls]
#[[3456, 937], [3666, 54533], [24456, 83279], [344516, 10410]]
Pedro Oct 19 2020 at 09:39
Список изменяемый, а строка - нет. Для этого можно использовать цикл for.
print(id(a[0]))
print(id(a[0][0]))
for i in range(len(a)):
for j in range(len(a[i])):
a[i][j] = int(a[i][j])
print(a)
print(type(a[0][0]))
print(id(a[0])) # the same id with the first print
print(id(a[0][1])) # id has changed