#python #list #list-comprehension
Вопрос:
что делать, если список содержит такие значения, как целые числа в списке, как
list1 = ['a', 'b', 'c', 'd',5,4,433,"fdff",44,2323]
содержит такие значения, как 5,4,433, так как же их отфильтровать с помощью list comprehensive в python?
Понимание списка Python
Ответ №1:
Вы можете сделать что-то вроде [i for i in list1 if type(i) == int]
выделения целых чисел.
Ответ №2:
Вы можете просто сделать:
list1=['a', 'b', 'c', 'd',5,4,433,"fdff",44,2323]
list2=[a for a in list1 if isinstance(a, int)]
Ответ №3:
Вы также можете попробовать filter
с isinstance
:
print(list(filter(lambda x: isinstance(x, int), list_1)))
Комментарии:
1. Это плохая практика-использовать одно и то же имя как для входного списка, так и для параметра lambda, в который вводится каждый элемент списка. ОП запрашивает понимание списка, что также обычно считается питоническим подходом по сравнению с фильтром с лямбда-функцией.
2. @blhsing Отредактировал мой ответ… Это была опечатка, когда я публиковал
Ответ №4:
Этого будет достаточно.
[i for i in list1 if type(i) is int]
Или
[i for i in list1 if str(i).isnumeric()]