Como converter lista de números em inteiros em Python?
Oct 19 2020
Portanto, tenho uma lista de listas de números de um arquivo .txt carregado em Python:
ls = [['3456', '937'], ['3666', '54533'], ['24456', '83279'], ['344516', '10410']...]
Como posso converter os números ( type: list) para o tipo inteiro, mas mantê-los nesta lista?
Ou seja, a saída que eu gostaria:
[[3456, 937], [3666, 54533], [24456, 83279], [344516, 10410]...]
Eu tentei usar isto:
ls = [int(i) for i in ls]
Mas obtenha o erro: o argumento int () deve ser uma string.
Alguém sabe fazer a conversão para a saída que eu gostaria? Obrigado!
Respostas
1 dmitryro Oct 19 2020 at 09:29
Você pode usar mais uma compreensão dentro de:
ls = [[int(i) for i in k] for k in ls]
1 PacketLoss Oct 19 2020 at 09:29
Você pode usar mape listar a compreensão.
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
A lista é mutável, mas a string não. Você pode usar o loop for para fazer isso.
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
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas