Konversi semua string dalam daftar ke int

603

Dengan Python, saya ingin mengonversi semua string dalam daftar menjadi bilangan bulat.

Jadi jika saya punya:

results = ['1', '2', '3']

Bagaimana saya membuatnya:

results = [1, 2, 3]
Michael
sumber
1
Lihat ini: stackoverflow.com/questions/642154/…
Micah Carrick

Jawaban:

1171

Gunakan mapfungsi (dalam Python 2.x):

results = map(int, results)

Dalam Python 3, Anda harus mengonversi hasil dari mapke daftar:

results = list(map(int, results))
pipi
sumber
23
Saya ingin menunjukkan bahwa pylint mengecilkan penggunaan map, jadi bersiaplah untuk tetap menggunakan daftar pemahaman jika Anda pernah menggunakan standar itu. :)
ThorSummoner
6
Kebalikannya adalah (untuk mengonversi daftar int ke daftar string): map (str, results)
Ali ISSA
12
Anda dapat menyederhanakan jawaban ini: selalu gunakan list(map(int, results)), itu berfungsi untuk semua versi Python.
mvp
378

Gunakan daftar :

results = [int(i) for i in results]

misalnya

>>> results = ["1", "2", "3"]
>>> results = [int(i) for i in results]
>>> results
[1, 2, 3]
Chris Vig
sumber
30
Pemahaman daftar juga bagus. Untuk OP - lihat di sini untuk melihat kontras yang bagus dari peta dan pemahaman daftar: stackoverflow.com/questions/1247486/…
cheeken
3

Sedikit lebih berkembang dari daftar pemahaman tetapi juga berguna:

def str_list_to_int_list(str_list):
    n = 0
    while n < len(str_list):
        str_list[n] = int(str_list[n])
        n += 1
    return(str_list)

misalnya

>>> results = ["1", "2", "3"]
>>> str_list_to_int_list(results)
[1, 2, 3]

Juga:

def str_list_to_int_list(str_list):
    int_list = [int(n) for n in str_list]
    return int_list
2RMalinowski
sumber