Ответ 1
[i for i in my_list if '91' not in i and '18' not in i]
Обратите внимание, что вы не должны использовать list
в качестве имени переменной, он затеняет встроенную функцию.
Предположим, что у меня был список
my_list = ['91 9925479326','18002561245','All the best','good']
Теперь я хочу игнорировать строки в списке, начиная с 91
и 18
, как показано ниже
result = []
for i in my_list:
if not '91' in i:
if not '18' in i:
result.append(i)
Итак, здесь я хочу добиться этого с помощью списков. И все-таки, чтобы написать два условия, если условия в списках завершены?
Может кто-нибудь, пожалуйста, дайте мне знать, как это сделать со списком понятий
Спасибо заранее............
[i for i in my_list if '91' not in i and '18' not in i]
Обратите внимание, что вы не должны использовать list
в качестве имени переменной, он затеняет встроенную функцию.
Если у вас более двух значений (91 и 18) или они динамически производятся лучше использовать эту конструкцию:
[i for i in my_list if not i.startswith(('91', '18'))]
Или если вы хотите проверить, находятся ли 91
и 18
в строках (не только в начале), используйте in
вместо startswith
:
[i for i in my_list if all(x not in i for x in ['91', '18'])]
Пример использования:
>>> my_list = ['91 9925479326','18002561245','All the best','good']
>>> [i for i in my_list if all(not i.startswith(x) for x in ['91', '18'])]
['All the best', 'good']
>>>
Вы можете "объединить" оба условия:
if ((not '91' in i) and (not '18' in i))