Как добавить в список, если он не находит ничего, что соответствует списку? - PullRequest
0 голосов
/ 22 ноября 2018

Я хочу сделать печать, когда мой код не находит ничего по всему списку.

Это мой код:

new_list = ['There%is', 'None&of', 'Same&here']
a = new_list.split("%")
old_list = ['Stack%Hello', 'Over&You', 'flow&There']
condition = True
while condition:
    try:
        for i, items in zip(range(len(old_list)), old_list):
            old_list_value = old_list[i].split("%")
            if a[0] in items:
                if len(old_list_value[1]) < len(a[1]):
                    old_list[i] = new_list        
                    condition = False

                elif len(old_list_value[1]) > len(a[1]):
                    old_list[i] = new_lis
                    condition = False

            else:
                old_list.append(new_list)
                condition = False
                break

    except Exception as err:
        print(err)

Я хочу сделать следующее: проверять каждое первое слово каждого %, а затем я сравниваю со старым списком, чтобы проверить, есть ли первоеслово внутри old_list - если оно есть, мы воспроизводим его значение old_list с новым.

elif, если слово длиннее, чем слово new_list, тогда мы ничего не делаем.

Как я могу сделать так, чтобы, если он не находит if a[0] in items: во всем списке, мы добавляем new_list в old_list bascially?

Это означает, что он должен сначала найти все слова, если он содержится внутри old_list иесли это не так, мы добавляем.

Новое редактирование:

Код:

new_list = ['There%is', 'None&of', 'Same&here']
a = new_list.split("%")
old_list = ['Stack%Hello', 'Over&You', 'flow&There']


for i, items in zip(range(len(old_list)), old_list):
    old_list_value = old_list[i].split("%")
    if a[0] in items:
        if len(old_list_value[1]) < len(a[1]):
            old_list[i] = new_list
            break


        elif len(old_list_value[1]) > len(a[1]):
            old_list[i] = new_list
            break


else:
    old_list.append(new_list)
    break

1 Ответ

0 голосов
/ 22 ноября 2018

Возможно, вы захотите проверить for-else:

for item in items:
    if you_found_something:
        found_item = item
        break
else:
    print('No item found.')
    do_your_append_here

В основном for-else отвечает на вопрос, завершился ли цикл for без перерыва.Выше мы разбиваемся, когда находим что-то, поэтому else не будет выполнен, но поскольку ваш цикл for завершается без оператора break, будет выполняться код в else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...