2010-03-11 31 views

Trả lời

17

Python 2.x:

map(int, ["1", "2", "3"]) 

Python 3.x (trong 3.x, map trả về một iterator, không phải là một danh sách như trong 2.x):

list(map(int, ["1", "2", "3"])) 

map tài liệu : 2.6, 3.1

+1

Tôi đang có ấn tượng rằng 'bản đồ' thường không thích. Nó thậm chí gần như bị loại bỏ khỏi Python 3. – pafcu

17
[int(i) for i in str_list] 
+0

')' ở cuối là sai, nhưng nếu không +1 –

+0

+1 Tôi thực sự thích 'bản đồ', nhưng máy phát điện là cách dễ đọc hơn. –

4

Bạn cũng có thể sử dụng danh sách hiểu ensions:

new = [int(i) for i in old] 

Hoặc chức năng map() dựng sẵn:

new = map(int, old) 

Hoặc itertools.imap() chức năng, mà sẽ cung cấp một tăng tốc trong một số trường hợp nhưng trong trường hợp này chỉ spits ra một iterator, mà bạn sẽ cần phải chuyển đổi thành danh sách (vì vậy có thể sẽ mất cùng một khoảng thời gian):

import itertools as it 
new = list(it.imap(int, old)) 
2

Nếu chuỗi của bạn không chỉ là số (ví dụ: u ''), bạn có thể sử dụng:

new = [int(i) for i in ["1", "2", "3"] if isinstance(i, int) or isinstance(i, (str, unicode)) and i.isnumeric()] 
0

Nếu đó là mảng và đã được cài đặt gọn gàng. Chúng tôi cũng có thể sử dụng mã dưới đây.

import numpy as np 

np.array(['1', '2', '3'],dtype=int) 
Các vấn đề liên quan