от
Я хочу удалить каждый элемент из списка, который имеет подстроку "KA", но когда я попытался это сделать, он не работал должным образом.
def removeKA(reg_list):
    for reg_no in reg_list:
        if "KA" in reg_no:
            reg_list.remove(reg_no)
            print(reg_no)

reg_list = ["KA09 3056","KA12 9098","MH10 6776","GJ01 7854","KL07 4332"]
removeKA(reg_list)
Сообщений об ошибках не обнаружено. Но вывод должен быть KA09 3056 КА12 9098 Но вместо этого я получаю вывод как KA09 3056              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

2 Ответы

0 голосов
от
Просто используйте понимание:
def removeKA(reg_list):
    return [i for i in reg_list if 'KA' not in i]

reg_list = ["KA09 3056","KA12 9098","MH10 6776","GJ01 7854","KL07 4332"]
removeKA(reg_list)

['MH10 6776', 'GJ01 7854', 'KL07 4332']
    
0 голосов
от
Это происходит потому, что вы печатаете
reg_no
, а не список. Элемент удаляется из списка, хотя. Хотя это не правильный способ сделать то же самое.
def removeKA(reg_list):
for reg_no in reg_list:
    if "KA" in reg_no:

        # The element is removed below
        reg_list.remove(reg_no)

        # But the value still exists inside reg_no
        print(reg_no)
    
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...