Если вы хотите запустить функцию над каждым членом итератора, как список, вы можете сделать это тремя способами: явное for
заявление, вызов функции map
, или comprehension.
постижение выглядит следующим образом:
my_new_strings = [re.sub(r'\W+', '', my_string) for my_string in my_strings]
Но, даже если вы читаете учебник разделы выше, это может иметь смысл, если вы первый не думать о том, как писать с явным цикла:
my_new_strings = []
for my_string in my_strings:
my_new_string.append(re.sub(r'\W', '', my_string))
Понимание в основном этот рисунок сгущенный. Они хороши, потому что они устраняют некоторые шаблоны (которые мешают чтению кода и предоставляют больше мест для ошибок во время написания кода), могут использоваться в середине выражения и немного быстрее. Но в конечном счете, они делают то же самое.
@ Эрик: Спасибо. Я полагал, что это должен быть дуп, но я не мог найти вопрос с хорошим ответом, который имел бы смысл для этого ОП; что он совершенен. – abarnert