Anzeige:
Ergebnis 1 bis 7 von 7

Thema: python3 suchen in Listen

  1. #1
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    2.243

    python3 suchen in Listen

    Hi,

    ich habe zwei Listen die ein Datenbankexport sind

    Code:
    [(1, 0, 'elasticsearch', 'clientfuu-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-live-]YYYY.MM.DD', False, '', '', True, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'clientmonitoring-qa', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-qa-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'clientmonitoring-dev', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-dev-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'clientmonitoring-ALL', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-*-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-dev', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-dev-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-qa', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-qa-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-live-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-ALL', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-*-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'orderentry-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-monitoring-orderentrybossbapb-*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'process-instant-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-process-instant-monitoring*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'carlos-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-monitoring-ormaelbossc-*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'logstash-termination-clearance-events-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-termination-clearance-events-live-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', '*-events', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-*-events-*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'sisi-monitoring', 'proxy', 'http://elstic.loc:9200/', '', '', '[logstash-sisi-monitoring-live-*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}')]
    [(1, 0, 'elasticsearch', 'clientfuu-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-live-]YYYY.MM.DD', False, '', '', True, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'clientmonitoring-qa', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-qa-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'clientmonitoring-dev', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-dev-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'clientmonitoring-ALL', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-*-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-dev', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-dev-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-qa', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-qa-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-live-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'databasemonitoring-ALL', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-databasemonitoring-*-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'orderentry-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-monitoring-orderentrybossbapb-*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'process-instant-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-process-instant-monitoring*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'carlos-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-monitoring-ormaelbossc-*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', 'logstash-termination-clearance-events-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-termination-clearance-events-live-]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'), (1, 0, 'elasticsearch', '*-events', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-*-events-*]YYYY.MM.DD', False, '', '', False, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}')]
    bei der ich pro line

    Code:
    (1, 0, 'elasticsearch', 'clientfuu-live', 'proxy', 'http://elstic.loc:9200', '', '', '[logstash-clientmonitoring-live-]YYYY.MM.DD', False, '', '', True, '{"esVersion":5,"interval":"Daily","timeField":"@timestamp"}', False, '{}'),
    Pruefen will ob das dritte Element auch in der zweiten Liste im dritten Element vorkommt und wenn ja will ich ueber alle Elemente einen Vergleich machen

    Ich bin aber scheinbar zu bloed das bei Google zu finden

    Gruss Stefan
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


  2. #2
    Registrierter Benutzer Avatar von snowcrash23
    Registriert seit
    Jun 2006
    Ort
    Unbekannt Verzogen
    Beiträge
    577
    Moin,

    ich glaube du suchst zip:

    Code:
    for v1, v2 in zip(list_1, list_2):
        if v1[2] == v2[2]:        
            vergleich(v1, v2)
    Für sehr große listen gitb es auch noch itertools.zip_longest.

    MfG
    snowcrash23
    Geändert von snowcrash23 (20.03.17 um 14:57 Uhr) Grund: Tippfehler
    OS:Arch LinuxCPU:Core i5-2500K
    MB:P8P67PRORAM:16GB DDR3GK:NV GTX570

    Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

  3. #3
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    bei den zip Ansatz halt auch mal dran denken, wie sich das verhält, wenn die Listen nicht gleich lang sind, was vermutlich ohnehin nicht der Fall ist, aber mal probieren was passiert sollte man schon
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  4. #4
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    2.243
    Cool, das ist der erste Schritt, aber ich vertshe ich noch nicht wie ich das anders rum mache, also wenn v1 nicht in Liste 2 drin ist

    Also irgendwas wie
    Code:
    for v1, v2 not in zip(live_data, qa_data):
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


  5. #5
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Ich würde grob sagen zwei Fälle und zwei Bedingungen:
    Bedingungen sind:
    1. es sind zwei Listen
    2. beide Listen haben gleich viele Einträge

    Fälle:
    1. du willst nur die beiden Einträge "vergleichen", da ist zip dein Kumpel
    2. du willst den Eintrag aus der ersten Liste, gegen alle Einträge der zweiten Liste "vergleichen", da ist zip nicht dein Kumpel

    -- Ich sags noch mal, bedenke auch, was passieren soll, wenn die Listen nicht gleich viele Einträge haben (auch da ist zip nicht dein Kumpel)...
    Geändert von nopes (23.03.17 um 01:29 Uhr)
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  6. #6
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    2.243
    Meinme Bedigungen sind

    - zwei Listen
    - Beide Listen koennen koennen unterschiedlich viele Eintraege haben
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


  7. #7
    Registrierter Benutzer
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    Nun generel stellt Python dafür die enumerate Funktion zur Verfügung.
    Alternativ die itertools, izip und count, arbeiten praktisch genauso, wie enumerate, sind dabei aber angeblich schneller - habe ich nicht nach gemessen.
    Du könntest bzw. ich würde eine dritte Liste ins Spiel bringen, die hält dann noch den Wert, denn du zum Einstieg vergleichst - dürfte der Geschwindigkeit gut tun, nur deswegen, Code wäre dann etwa so
    Code:
    from itertools import izip as zip, count
    # ...
    for valueToFind in list:
        indicesToCheck = [i for i, v in enumerate(simpelHelperList) if v == valueToFind['someKey']]
        # oder halt count + izip
        indicesToCheck = [i for i, v in zip(count(), simpelHelperList) if v == valueToFind['someKey']]
        for indexToCheck in indicesToCheck:
            foo = SomeComplexCheckFunction(valueToFind , complexList[indexToCheck])
            # ...
    Hoffe das hilft ein bisschen.

    [edit]hatte ein Bug drin, beide Suchen geben eine Liste von Indizies zurück, die dann abgearbeitet werden muss.
    Du kannst auch auf die einfache Liste verzichten
    Code:
    from itertools import izip as zip, count
    # ...
    for valueToFind in list:
        indicesToCheck = [i for i, v in zip(count(), otherList) if v['someKey']['someOtherKey'] == valueToFind['someKey']['foo']]
        for indexToCheck in indicesToCheck:
            foo = SomeComplexCheckFunction(valueToFind , otherList[indexToCheck])
            # ...
    Geändert von nopes (25.03.17 um 01:01 Uhr) Grund: simplified
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

Ähnliche Themen

  1. python3 csv.reader
    Von Huhn Hur Tu im Forum Linux als Server
    Antworten: 4
    Letzter Beitrag: 16.01.17, 22:46
  2. python3 subprocess falscher Output
    Von Huhn Hur Tu im Forum Linux als Server
    Antworten: 2
    Letzter Beitrag: 02.01.17, 07:16
  3. python3 zip packen
    Von Huhn Hur Tu im Forum Linux als Server
    Antworten: 2
    Letzter Beitrag: 05.12.16, 09:40
  4. Python3 int oder nicht int fu
    Von Huhn Hur Tu im Forum Linux als Server
    Antworten: 13
    Letzter Beitrag: 03.12.16, 00:59
  5. Python3 sftp
    Von Huhn Hur Tu im Forum Linux als Server
    Antworten: 17
    Letzter Beitrag: 21.11.16, 08:33

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •