Как преобразовать список чисел в целые числа в 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