Größe Übereinstimmung finden

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

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.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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‽
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

was heißt denn `set()`\s ?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

set ist ein Datentyp in Python.
Antworten