แปลงสตริงทั้งหมดในรายการเป็น int


603

ใน Python ฉันต้องการแปลงสตริงทั้งหมดในรายการให้เป็นจำนวนเต็ม

ดังนั้นถ้าฉันมี:

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

ฉันจะทำให้มัน:

results = [1, 2, 3]

1
ดูสิ่งนี้: stackoverflow.com/questions/642154/…
Micah Carrick

คำตอบ:


1171

ใช้mapฟังก์ชั่น (ใน Python 2.x):

results = map(int, results)

ใน Python 3 คุณจะต้องแปลงผลลัพธ์จากmapเป็นรายการ:

results = list(map(int, results))

23
ฉันต้องการชี้ให้เห็นว่าไพลินไม่สนับสนุนการใช้mapดังนั้นเตรียมใช้ความเข้าใจของรายการต่อไปถ้าคุณเคยใช้มาตรฐานนั้น :)
ThorSummoner

6
สิ่งที่ตรงกันข้ามคือ (เพื่อแปลงรายการ int เป็นรายการสตริง): map (str, results)
Ali ISSA

12
คุณสามารถทำให้คำตอบนี้ง่ายขึ้น: ใช้ตลอดเวลาlist(map(int, results))ใช้ได้กับ Python ทุกรุ่น
mvp

377

ใช้รายการความเข้าใจ :

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

เช่น

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

30
ความเข้าใจในรายการนั้นยอดเยี่ยมเช่นกัน ไปที่ OP - ดูที่นี่เพื่อดูความแตกต่างที่ดีของแผนที่และรายการความเข้าใจ: stackoverflow.com/questions/1247486/…
cheeken

3

ขยายเพิ่มเล็กน้อยกว่ารายการความเข้าใจ แต่ก็มีประโยชน์เช่นกัน:

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)

เช่น

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

นอกจากนี้:

def str_list_to_int_list(str_list):
    int_list = [int(n) for n in str_list]
    return int_list
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.