Ich denke, es ist am besten, ein Beispiel zu zeigen, was ich versuche zu tun. Der Punkt ist, dass ich einen eleganten Weg davon suche.Auf der Suche nach einem eleganten Weg, die Schnittmenge zwischen zwei Listen von Wörtern Tupel in verschiedenen Ordnungen zu finden
Lassen Sie uns sagen, ich habe zwei Listen von Tupeln:
x = [('a', 'c', 'e'), ('k', 'n')]
y = [('e', 'd', 'w'), ('c', 'a', 'e'), ('n', 'k')]
z = set(x).intersection(y)
Wenn ich den Schnittpunkt zwischen x und y berechnen ich eine leere Menge zu bekommen.
Mein Ziel ist es, herauszufinden, dass es zwei Elemente in y gibt, die mit den zwei Elementen in x identisch sind, während mir die unterschiedliche Reihenfolge der Tupel egal ist. Zusätzlich möchte ich den Index des passenden Elements der Liste y erhalten.
Für mich sind x [0] und y [1] die gleichen (wieder, kümmern sich nicht um die Reihenfolge) und der Index, den ich erhalten möchte, ist 1, gleich für x [1] und y [2] Beide sind für mich gleich und sollten in diesem Fall den Index 2 zurückgeben.
Irgendwelche Ideen, wie man das elegant macht?
Ich glaube, er die Indizes in y wollte, so aufzählen? Würde es auch ermöglichen, set_x zu einem Satz von frozensets zu machen. –
Verwenden Sie stattdessen frozensets. Machen Sie set_x zu einem Set anstelle einer Liste. – IceArdor
In diesem Fall könnten Sie einfach die Rollen von 'set_x' und' set_y' wechseln, um '[set_y.index (x_element) für x_element in set_x zu erhalten, wenn x_element in set_y]' '' [1, 2] 'zurückgibt. – acdr