continue/pass для list comprehension
Что можно записать вместо None что бы if ничего не добавляло?Я хочу получить число но именно в таком виде, я знаю что можно было бы написать if not x.isalpha, но мне интересно если тут какая то замена continue/pass?
r = "6015ekx"
number = [ None if x.isalpha() else x for x in r ]
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Вообще чисто для фильтрации данных придумана отдельная функция filter, хотя её результат ещё нужно потом превратить в список. Например, если достаточно было бы условия isdigit, то можно было бы записать коротко:
r = "6015ekx"
number = list(filter(str.isdigit, r))
Но если нужно фильтровать именно по not isalpha, то будет чуть длиннее, через lambda:
r = "6015ekx"
number = list(filter(lambda x: not x.isalpha(), r))
Но так уже получается не короче, чем если использовать списковое сокращение с условием, то есть то, что вы не хотите использовать.