Wie lassen sich Permutationen aus Listen unterschiedlicher Länge effizient koppeln?

Barbara Streisand
Freigeben: 2024-10-29 01:03:02
Original
606 Leute haben es durchsucht

How to Efficiently Pair Permutations from Lists of Disparate Lengths?

Effizientes Paaren von Permutationen aus unterschiedlichen Listen

Ihr Ziel ist es, einzigartige Kombinationen von Elementen aus zwei Listen zu generieren, wobei die Anzahl der Paarungen davon abhängt die Länge der kürzeren Liste. Lassen Sie uns dieses Konzept veranschaulichen:

Betrachten Sie zwei Listen:

names = ['a', 'b']
numbers = [1, 2]
Nach dem Login kopieren

Die gewünschte Ausgabe wäre:

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
Nach dem Login kopieren

Um dies zu erreichen, können Sie die Leistungsfähigkeit von Python nutzen itertools.product. So funktioniert es:

<code class="python">from itertools import product

a = ['foo', 'melon']
b = [True, False]
c = list(product(a, b))</code>
Nach dem Login kopieren

Durch die Verwendung des Produkts erhalten Sie alle möglichen paarweisen Kombinationen:

[('foo', True), ('foo', False), ('melon', True), ('melon', False)]
Nach dem Login kopieren

In Szenarien, in denen eine Liste länger ist als die andere (z. B. gibt es bei Namen drei Elemente, während Zahlen nur zwei haben), werden die Permutationen dennoch basierend auf der kürzeren Liste berechnet:

names = ['a', 'b', 'c']
numbers = [1, 2]
Nach dem Login kopieren

Erwartete Ausgabe:

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]
[('a', 1), ('c', 2)]
[('c', 1), ('a', 2)]
[('b', 1), ('c', 2)]
[('c', 1), ('b', 2)]
Nach dem Login kopieren

Dieser Ansatz stellt sicher, dass Sie alle erforderlichen möglichen Kombinationen erhalten für Ihren spezifischen Anwendungsfall, unabhängig von der relativen Länge der Eingabelisten.

Das obige ist der detaillierte Inhalt vonWie lassen sich Permutationen aus Listen unterschiedlicher Länge effizient koppeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage