Преобразуйте все строки в списке в int

485

В Python я хочу преобразовать все строки в списке в целые числа.

Так что если у меня есть:

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

Как мне это сделать:

results = [1, 2, 3]
Теги:
list
int

4 ответа

939
Лучший ответ

Используйте функцию map (в Python 2.x):

results = map(int, results)

В Python 3 вам нужно будет преобразовать результат из map в список:

results = list(map(int, results))
  • 17
    Я хочу отметить, что Pylint препятствует использованию map , так что будьте готовы использовать списки в любом случае, если вы когда-либо будете использовать этот стандарт. :)
  • 4
    Обратное (для преобразования списка int в список строк): map (str, results)
Показать ещё 2 комментария
308

Используйте понимание списка:

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

например

>>> results = ["1", "2", "3"]
>>> results = [int(i) for i in results]
>>> results
[1, 2, 3]
  • 29
    Понимание списка тоже великолепно. Для OP - см. Здесь, чтобы увидеть хороший контраст понимания карты и списка: stackoverflow.com/questions/1247486/…
1

Немного более расширенный, чем понимание списка, но также полезный:

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
0

как я могу изменить приведенный ниже список в список номеров?

answer = [[1, 10], [7, 3]] answer = [1, 10, 7, 3]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню