Удаление элемента списка, который имеет подстроку «KA», но удаляются не все элементы.Зачем? - PullRequest
0 голосов
/ 04 июля 2019

Я хочу удалить каждый элемент из списка, который имеет подстроку «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 ]

2 голосов
/ 04 июля 2019

Просто используйте понимание:

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 голосов
/ 04 июля 2019

Это происходит потому, что вы печатаете 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...