Подтвердить что ты не робот

Каков самый простой способ конвертировать список с str в список с int?

Каков самый простой способ конвертировать список с str в список с int в Python? Например, мы должны преобразовать ['1', '2', '3'] в [1, 2, 3]. Конечно, мы можем использовать цикл for, но это слишком просто.

4b9b3361

Ответ 1

Python 2.x:

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

Python 3.x(в 3.x, map возвращает итератор, а не список, как в 2.x):

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

map документация: 2.6, 3.1

Ответ 2

[int(i) for i in str_list]

Ответ 3

Вы также можете использовать списки:

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

Или встроенная функция map():

new = map(int, old)

Или функция itertools.imap(), которая в некоторых случаях обеспечит ускорение, но в этом случае просто выплюнет итератор, который вам нужно будет преобразовать в список (так что, вероятно, потребуется столько же времени)

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

Ответ 4

Если ваши строки - это не только числа (например, u ''), вы можете использовать:

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

Ответ 5

Если это массив и установлен numpy. Мы также можем использовать код ниже.

import numpy as np

np.array(['1', '2', '3'],dtype=int)