Функция обратного вызова - это функция, которую вы передаете (как ссылку или указатель) определенной функции или объекту. Эта функция или объект будет вызывать эту функцию в любое время позже, возможно, несколько раз для любой цели:
...
Таким образом, описание обратного вызова как функции, вызываемой в конце другой функции или задачи, слишком упрощается (даже если это общий прецедент).
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]
Я согласился бы с ответами 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())
, Это приводит только к фактическим цифрам. Причина я не использую прямые понимания списка, состоит в том, потому что понимание списка пропускает их внутренние переменные.
Можно сделать это с пониманием списка:
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]
Если это будет только кортеж кортежей, то что-то как rows=[map(int, row) for row in rows]
добьется цели. (Существует понимание списка и вызов для отображения (f, LST), который равен [f (a) для в LST], там.)
Оценка не , что Вы хотите сделать, в случае, если существует что-то как __import__("os").unlink("importantsystemfile")
в Вашей базе данных по некоторым причинам. Всегда проверяйте свой вход (если ни с чем иным, интервал исключения () повысит, если Вы плохо ввели).
Используя понимания списка:
t2 = [map(int, list(l)) for l in t1]
Я бы предпочел использовать только списки понимания:
[[int(y) for y in x] for x in T1]