Как преобразовать строки в целые числа в Python?

Функция обратного вызова - это функция, которую вы передаете (как ссылку или указатель) определенной функции или объекту. Эта функция или объект будет вызывать эту функцию в любое время позже, возможно, несколько раз для любой цели:

  • , уведомляя о завершении задачи
  • , запрашивая сравнение между двумя item (например, в c qsort ())
  • сообщает о ходе процесса
  • , уведомляя события
  • делегируя инициализацию объекта
  • делегирование картины области

...

Таким образом, описание обратного вызова как функции, вызываемой в конце другой функции или задачи, слишком упрощается (даже если это общий прецедент).

414
задан codeforester 28 May 2017 в 20:06
поделиться

6 ответов

int() встроенная функция стандарта Python для преобразования строки в целочисленное значение. Вы называете его со строкой, содержащей число как аргумент, и это возвращает число, преобразованное в целое число:

print (int("1") + 1)

вышеупомянутая печать 2.

, Если Вы знаете структуру своего списка, T1 (что это просто содержит списки, только один уровень), Вы могли сделать это в Python 2:

T2 = [map(int, x) for x in T1]

В Python 3:

T2 = [list(map(int, x)) for x in T1]
602
ответ дан Timo 29 May 2017 в 06:06
поделиться

Я согласился бы с ответами everyones до сих пор, но проблема, то, что, если у Вас нет всех целых чисел, они откажут.

, Если Вы хотели исключить нецелые числа тогда

T1 = (('13', '17', '18', '21', '32'),
      ('07', '11', '13', '14', '28'),
      ('01', '05', '06', '08', '15', '16'))
new_list = list(list(int(a) for a in b) for b in T1 if a.isdigit())

, Это приводит только к фактическим цифрам. Причина я не использую прямые понимания списка, состоит в том, потому что понимание списка пропускает их внутренние переменные.

10
ответ дан Christian Witts 29 May 2017 в 06:06
поделиться

Можно сделать это с пониманием списка:

T2 = [[int(column) for column in row] for row in T1]

внутреннее понимание списка ([int(column) for column in row]) сборки list из int с от последовательности int - способные объекты, как десятичные строки, в row. Внешнее понимание списка ([... for row in T1])) сборки список результатов внутреннего понимания списка относилось к каждому объекту в T1.

фрагмент кода перестанет работать, если какая-либо из строк будет содержать объекты, которые не могут быть преобразованы int. Вам будет нужна более умная функция, если Вы захотите обработать строки, содержащие недесятичные строки.

, Если Вы знаете структуру строк, можно заменить внутреннее понимание списка вызовом к функции строки. Например,

T2 = [parse_a_row_of_T1(row) for row in T1]
28
ответ дан Will Harris 29 May 2017 в 06:06
поделиться

Если это будет только кортеж кортежей, то что-то как rows=[map(int, row) for row in rows] добьется цели. (Существует понимание списка и вызов для отображения (f, LST), который равен [f (a) для в LST], там.)

Оценка не , что Вы хотите сделать, в случае, если существует что-то как __import__("os").unlink("importantsystemfile") в Вашей базе данных по некоторым причинам. Всегда проверяйте свой вход (если ни с чем иным, интервал исключения () повысит, если Вы плохо ввели).

1
ответ дан AKX 29 May 2017 в 06:06
поделиться
  • 1
    Это работает отлично! Вероятно, еще лучшее решение, чем использование данных – PW Kad 29 June 2014 в 16:46

Используя понимания списка:

t2 = [map(int, list(l)) for l in t1]
4
ответ дан Jon 29 May 2017 в 06:06
поделиться
  • 1
    Похож на it' s зафиксированный с 20-го июня 2014. – lazd 23 June 2014 в 04:20

Я бы предпочел использовать только списки понимания:

[[int(y) for y in x] for x in T1]
16
ответ дан 22 November 2019 в 23:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: