Heim >Backend-Entwicklung >Python-Tutorial >Wie lassen sich Permutationen aus Listen unterschiedlicher Länge effizient koppeln?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-29 01:03:02666Durchsuche

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]

Die gewünschte Ausgabe wäre:

[('a', 1), ('b', 2)]
[('b', 1), ('a', 2)]

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>

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

[('foo', True), ('foo', False), ('melon', True), ('melon', False)]

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]

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)]

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!

Stellungnahme:
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