Остановить вложенный цикл for после первого выполнения условия - PullRequest
0 голосов
/ 27 октября 2019

У меня есть два списка. Я хочу сравнить с Левенштейном-расстоянием. Первый список (raw_1) является вложенным списком. Я хочу сравнить второй список (List) с каждым элементом вложенных списков в (raw_1). Если разница между одним элементом элемента (вложенный список) в raw_1 и одним из compare (сравнение в коде) List составляет 3, тогда следует добавить сравнение в третий список (column_1). После того первого условия, когда условие истинно, оно должно начинаться со следующего элемента raw_1.

. Я уже пытался break различных циклов for, но он всегда заканчивался разными выходами. которые не такие, как я хотел.

column_1 = []
for element in raw_1:
    for item in element:
        for compare in List:
            if levenshtein(item, compare) < 4:
                column_1.append(item.replace(item, compare))
column_1

В настоящее время я получаю только выходные данные со всеми сравниваемыми и заменяемыми элементами, но я просто хочу, чтобы первый элемент с этим условием был напечатан в моем списке column_1 Я надеюсь, что кто-нибудь сможет помочь

возможно, это было бы более вероятно, чтобы понять: у меня есть: исходные списки:

List = ['Katharinenstr.', 'Jakobstr.', 'Wilhelmsplatz', 'Hauptstätterstr.',
        'Schlosserstr.', 'Torstr.', 'Kreuzstr.', 'Brückenstr.',
        'Obere Bachstr.', 'Holzstr.', 'Rosenstr.', 'Wilhelm-Murr-Str.',
        'Esslinger Str.', 'Danziger Freiheit', 'Wagnerstr.', 'Leonhardsplatz']

raw_1 = [['n', 'j', 't', 't', 'k', '----', '--------------------------\n'],
         ['bvyrfL', 'A', 's:', '2.44:', 'W', 'A', '¦', 'Z', '-', 'S', '5\n'],
         ["'", 'M', 'S', 'J', 'I', '-', '’-f', '|', 'p', '2\n'],
         ['#', 'J', '•\n'], ['-', '4TZ-"', 'j\n'], ['j:', '-', '"\n'], ['.\n'], ['k\n'],
         ['Hu¨i\n'], ['.\n'], ['¦\n'], ['J', 'M', ':', '|>|P\n'], [',\n'], ["'\n"], ['.\n'],
         ['--------', '---------', '', ';---------------------', '—', '---------------------------------------------------A---------\n'],
         ['\n'], ['J', '|', '^', 'f', 'f', '.', '^', '-', '2', '^', '10/?--', '1\n'],
         ['V', 'Film', '2\n'], ['Aufnahme®', '*te*t', 'Kittel', '(Film', '1', 'ist', 'Picht', 'vorhanden)', 'B', '@', 'a', 'i', 'r', 'k', 'A', 'I\n'],
         ['Dai-ra', '22.8.42', 'Zeit', '„U-JLIÜ', 'Uhr', '|\n'],
         ['F', 'H', '®', 'Hr.', 'Strasse».', 'Platä', 'zmemism.', '|', 'Bemerkung®', 's,', 'I\n'],
         ['1', 'Katharinenstr.', 'FaUobstr.', 'u,Wilhelmsplatz', 'Nordseite', 'I\n'],
         ['2', 'i', 'Iakobstr.', 'Katharinenstr.u.Haupt-', 'Gesamtbild', '1\n'], ['stätterstr.', 'I\n'],
         ['3', 'Katharinenstr.', 'Silhelrnsplatz', 'u.Jakobskr,', 'Nordseite', 'I\n'],
         ['4', 'ilhelmsplatz', '|', 'Katharinen-u.Hauptstätterstr,', 'Nordostseite', 'I\n'],
         ['5', 'jHauptstätterstr,', 'N', 'r', '.', '1', '4', 'u.', 'Chrlstosstr.', 'Wilhelmsplatz', 'Nordwest-', 'I\n'],
         ['|', 'seit«', 'I\n'], ['6', '"', 'von', 'Wilhelmsplatz', 'nach', 'Tu¨dwiesten', 'I\n'],
         ['7', 'Wilhelmsplatz', 'alter', 'Marktbrunnen,', 'SUdwestjseite', 'I\n'], ['8', '"', 'Nr.10', '-', '12', 'SUdwestseite', 'I\n'],
         ['9', 'Schlosscrstr.', 'Einblick', 'von', 'Wilhelms^latz', 'I\n'], ['10', 'Houptstcktterstr.1^', 'Uhlandapotheke', 'I\n'],
         ['11', ';', '"', ':', 'Wilhelmsplatz', '«.Kaufhaus', ';', 'Nordwestseite', 'I\n'], ['jBreuninger', 'I\n'],
         ['.12', '!', 'Torftr.', '[Einblick', 'v.Hauptstätterstr.', '|', 'I\n'], ['13', 'iHauptstätterstr.jNr.50', '-', '36', 'I', 'Nordwestseite', 'I\n'],
         ['14', '"', 'iNr.34', 'und', 'Bru¨ckenstr.', '"', 'I\n'], ['1', '5', '"', '5', 'o', 'I\n'],
         ['16', 'I', 'Hauptstätterstr.', ';', "Hs.i'ir.24", 'und', 'Hs.Nr.2', '|', 'Nordwestseite', 'I\n'],
         ['17', 'IBru¨ckenftr.', 'Einblick', 'von', 'Haupt', 's', 't', 'a', 't', 't', '!', 'I\n'],
         ['18', 'I', 'Hauptstätterftr.Ö', 'Einblick', 'Marktstr.', 'I\n'], ['j', 'I0', 'bere', 'Bach', 'Str.2', 'i', 'I\n'],
         ['IHolzstr.', 'Wagnerstr.u.Danziger', 'Frei-', 'Nordwestseite', 'j\n'], ['heit', 'I\n'],
         ['20', 'IHolzstr.', 'Haupt-', 'Blick', 'nach', 'SUdwesten', '1', 'I\n'], ['I', 'stätterstr.', '^', 'I\n'],
         ['21', 'Rosenstr.', 'Holz-u.Untere', 'Bach', 'Str.', 'Su¨dseite', '|\n'], ['22', 'Holzstr.2', 'u.', '|', 'Lederstr.', 'Nordseite', 'I\n'],
         ['Lederstr.', 'I\n'], ['23', 'tilh.lcurr', 'Str.', 'Holz-', 'u.Untere', 'Bach', 'Str.', 'Gestapo', '|\n'],
         ['24', 'Holzstr.', '|', 'Danziger', 'Freiheit', 'und', 'Kauf-', 'NordwestseiteM;', '*', 'I\n'], ['j', 'haus', 'Breuninger', "'»", 'I\n'],
         ['25', 'Eßlingerstr.', 'j', 'Danz.Freiheit', 'u.Brennerftr,', 'I\n'], ['26', 'Danz.Freiheit', 'Holz-', 'u.EPlinger', 'Str.', 'Su¨dseite', 'I\n'],
         ['27', '|Eßlinger', 'Str.', 'Danz.Freiheit', 'u.Brennerstr.', 'Westseite', 'I\n'], ['28', 'IRosenstr.', 'j', 'Eßlinger', '8', 'tr»u,', 'Holzstr.', '|\n'],
         ['29', 'i', 'Eßlinger', 'Str.', "'", 'Brenner-', 'und', 'arosenftr.', 'j', 'Westseite', '1\n'], ['H\n'], ['------—', '¦', '¦', 'mk', '¦', '¦', '-', '¦', '^\n'],
         ['I', 'AufnahssjäHRa#i', 't.', '..', 'oo', '8', 'A2', 'tttei', 'm', '1-1,2«', '15', 'Uhr', 'jn?', '®-', 'a-', 'a', '*¦', 'vk', '8\n'],
         ['|', 'Fii®Sr', '<j', 'Strasse', '«Plsrts', 'j', 'wleolmg', 'SemsTkungtm\n'], ['I', '30', 'jEPlinget', 'Str.', 'Wagnerstr.u.', 'Leonhardsplatz', 'Westseite\n'],
         ['I', '31', 'bagnerstr.', 'Eßlinger-', 'und', 'Holzstr.', 'Su¨dseite\n'], ['I', '32', 'Eßlinger', 'Str.', 'Wagnerstr.', 'u.', 'Hs.Nr.19', 'Nordwestseite\n'],
         ['I', '33', 'jLeonhardsplatz', '!Blick', 'gegen', 'Hauptstätterstr.', '|\n'], ['I', '34', '*', 'Holz-', 'und', 'Eßlinger', 'Str.\n'],
         ['I', '35', '"\'', 'hinter', 'der', 'Leonhardskitche', 'Nordwestseite\n'], ['I', '36', '"', '|', '"', 'Gustav', 'Siegle', 'Haus', '"\n'],
         ['[', '3', '7', '"', 'Gustav', 'Siegle', 'Haus', 'u.Leon-', '|', '"\n'], ['1I', '.<hardskirche\n'], ['1']]

вывод должен быть примерно таким: column_1: ['Katharinenstr', 'Jakobstr.', 'Katharinenstr.', 'Wihlhelmsplatz', 'Hauptstätterstr.'] Just a little part of the OUtput

1 Ответ

0 голосов
/ 27 октября 2019

Используйте флаг и добавьте условие к каждому циклу.

for element in raw_1:
    found = False
    for item in element:
        for compare in List:
            if levenshtein(item, compare) < 4:
                column_1.append(item.replace(item, compare))
                found = True
                break
        if found: break
...