Seite 1 von 1

Größe Übereinstimmung finden

Verfasst: Mittwoch 29. Mai 2019, 12:55
von DMD-OS
Hallo
Ich erhalte eine unterschiedliche Anzahl von Listen, die ich gern mit einer gegebenen Liste vergleichen,
und mir gern die Liste mit der größten Übereinstimmung ausgeben lassen würde.
Beispiel (mit stark gekürzten Listenlängen):

Code: Alles auswählen

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

given = ['Ruby Lilly Hotel & Bar','Ruby Coco Hotel Düsseldorf', 'Ruby Lotti Hotel & Bar']


A = ['Ruby GmbH', 'Ruby GmbH', 'Ruby GmbH']
B = ['Ruby Lilly Hotel & Bar  Dachauer Straße 37 80335 München', 'Ruby Lilly Hotel & Bar  Dachauer Straße 37 80335 München', 'Ruby Lilly Hotel & Bar  Dachauer Straße 37 80335 München']
C = ['Hausmeister', 'Prüfung nach DGUV', 'Backstein']

for given_idx, given_ele in enumerate(given):
    for ab_index, ab_ele in enumerate([A, B, C]):
        # print(given_ele, ab_ele)
        if any(given_ele in s for s in ab_ele):
            print('YES')
        else:
            print("Not this way!")
    print('---')
Als Ausgabe versuche ich Liste B zu bekommen.

Re: Größe Übereinstimmung finden

Verfasst: Mittwoch 29. Mai 2019, 13:03
von __blackjack__
@DMD-OS: Mach da `set()`\s draus und such die Menge mit der grössten Schnittmenge. Wobei es natürlich sein kann, dass es nicht nur einen Wert gibt mit einer gleich grossen Schnittmenge. Da ist dann die Frage wie das Ergebnis aussehen soll‽

Re: Größe Übereinstimmung finden

Verfasst: Mittwoch 29. Mai 2019, 13:30
von DMD-OS
was heißt denn `set()`\s ?

Re: Größe Übereinstimmung finden

Verfasst: Mittwoch 29. Mai 2019, 13:54
von __deets__
set ist ein Datentyp in Python.