Chuyển đổi tất cả các chuỗi trong một danh sách thành int


Câu trả lời:


1171

Sử dụng maphàm (trong Python 2.x):

results = map(int, results)

Trong Python 3, bạn sẽ cần chuyển đổi kết quả từ mapdanh sách:

results = list(map(int, results))

23
Tôi muốn chỉ ra rằng pylint không khuyến khích việc sử dụng map, vì vậy hãy chuẩn bị sử dụng cách hiểu danh sách nếu bạn từng sử dụng tiêu chuẩn đó. :)
ThorSummoner

6
Nghịch đảo là (để chuyển đổi danh sách int thành danh sách chuỗi): map (str, results)
Ali ISSA

12
Bạn có thể đơn giản hóa câu trả lời này: chỉ cần luôn luôn sử dụng list(map(int, results)), nó hoạt động cho mọi phiên bản Python.
mvp

378

Sử dụng một danh sách hiểu :

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

ví dụ

>>> results = ["1", "2", "3"]
>>> results = [int(i) for i in results]
>>> results
[1, 2, 3]

30
Danh sách hiểu là tuyệt vời quá. Đến OP - xem tại đây để thấy sự tương phản tuyệt vời của việc hiểu bản đồ và danh sách: stackoverflow.com/questions/1247486/
Kẻ

3

Mở rộng hơn một chút so với hiểu danh sách nhưng cũng hữu ích:

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)

ví dụ

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

Cũng thế:

def str_list_to_int_list(str_list):
    int_list = [int(n) for n in str_list]
    return int_list
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.