Heim  >  Artikel  >  Backend-Entwicklung  >  Komprimieren von zwei Listen ungleicher Länge in einem Python-Wörterbuch

Komprimieren von zwei Listen ungleicher Länge in einem Python-Wörterbuch

WBOY
WBOYnach vorne
2023-08-19 11:29:061152Durchsuche

Komprimieren von zwei Listen ungleicher Länge in einem Python-Wörterbuch

Einführung

In Python sind Listen und Wörterbücher eine der am häufigsten verwendeten Methoden zur Datenerfassung und -verarbeitung. Es gibt viele Operationen im Zusammenhang mit Listen und Wörterbüchern, die häufig verwendet werden, um Daten in der gewünschten Form abzurufen. Manchmal müssen wir möglicherweise auch zwei verschiedene Listen komprimieren und die komprimierte Liste in Wörterbuchform erhalten.

In diesem Artikel besprechen wir den Komprimierungsvorgang zweier Listen ungleicher Länge und geben das Ergebnis als Wörterbuch aus. Dieser Artikel hilft den Lesern, den Komprimierungsvorgang einer Liste zu verstehen und daraus ein Wörterbuch zu erstellen.

Lassen Sie uns also mit der Diskussion darüber beginnen, was es bedeutet, zwei ungleiche Listen zu komprimieren.

Komprimieren Sie zwei Listen mit ungleicher Länge

In Python ist die Komprimierung einer der häufigsten Vorgänge beim Sammeln und Verarbeiten von Daten und umfasst das Hinzufügen von zwei Listen in Form von Schlüssel-Wert-Paaren. Einfach ausgedrückt handelt es sich um eine Operation, bei der die Werte oder Elemente in einer Liste so geordnet oder dargestellt werden, dass sie im Ausgabeergebnis wie Schlüssel-Wert-Paare aussehen.

Dieser Vorgang ist einer der häufigsten, da wir manchmal eine Liste oder ein Wörterbuch benötigen, das eine Kombination aus zwei verschiedenen Listen ist. Wir können zwei Listen unterschiedlicher Größe oder Länge haben, diese dann zusammenführen und in Wörterbuchform ausgeben, um die Daten einfacher und effizienter zu verarbeiten.

Es gibt viele Möglichkeiten, den gleichen Effekt zu erzielen. Lassen Sie uns einige dieser Methoden besprechen.

Methode 1: Verwendung von Itertools + Cycle

Wir können die itertools-Bibliothek verwenden und den Zyklus importieren, um die beiden Listen zu komprimieren und das Wörterbuch als Ausgabe zu erhalten

# Itertools + Cycle Method 


# Import the cycle from itertools
from itertools import cycle

# define two lists
list1 = ['a', 'b', 'c', 'd', 'e']
list2 = [1, 2, 3, 4]

# zip the lists and pass them into the dictionary form
res = dict(zip(list1, cycle(list2)))

# print the final results
print("Final Output Dictionary : ", str(res))

Wie wir im obigen Code sehen können, haben wir zunächst den Zyklus von itertools importiert und zwei Listen unterschiedlicher Größe definiert.

Verwenden Sie dann die Schleifenfunktion in itertools, um die beiden Listen mit ungleicher Länge zu komprimieren und stellen Sie die Ausgabe dann als Wörterbuch dar.

Ausgabe

Die Ausgabe des folgenden Codes lautet:

Final Output Dictionary: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 1}

Methode 2: Deque verwenden

Ähnlich wie Schleifen in Itertools können wir Deques in Sammlungen verwenden. Durch den Import von deque können wir die beiden Listen komprimieren und ein Wörterbuch erhalten.

# using deque for zipping lists

from collections import deque

# define two list that are to be zipped 
ini_lis1 = ['a', 'b', 'c', 'd', 'e']
ini_lis2 = deque([1, 2, 3, 4])

# zip teh lists using deque
result = {}
for letter in ini_lis1:
  number = ini_lis2.popleft()
  result[letter] = number
  ini_lis2.append(number)


# print the final results
print("Output Dict : ", str(result))

Wie wir im obigen Code sehen können, werden nach dem Import von Deque aus Sammlungen zwei Listen unterschiedlicher Größe definiert.

Verwenden Sie dann die for-Schleife und die Append-Funktion, um die beiden Listen zu komprimieren. Das Endergebnis wird in Form eines Wörterbuchs ausgedruckt.

Ausgabe

Die Ausgabe dieses Codes ist:

Output Dict : {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 1}

Methode 3: Standardklasse verwenden

Die Standardklasse kann auch verwendet werden, um zwei Listen unterschiedlicher Größe zu komprimieren und als Ausgabe ein Wörterbuch bereitzustellen.

# using default class method

# import default dict from collections
from collections import defaultdict

# define two lists
ini_lis1 = ['a', 'b', 'c', 'd', 'e']
ini_lis2 = [1, 2, 3, 4]

# use default dict
result = defaultdict(int)

# add values to the keys respectively
for i in range(len(ini_lis1)):
	result[ini_lis1[i]] += ini_lis2[i % len(ini_lis2)]

# print the final results
print("Output Dict: ", str(dict(result)))

Wie wir im obigen Code sehen können, werden zwei Listen definiert, nachdem die Standardklasse importiert und eine for-Schleife verwendet wurde, um die Werte zu den entsprechenden Schlüsseln hinzuzufügen.

Bitte beachten Sie, dass ein Standardwert zurückgegeben wird, wenn der Schlüssel nicht in den Daten vorhanden ist. Hier verwenden wir den Standardwert 0.

Ausgabe

Die Ausgabe des folgenden Codes lautet:

Output Dict: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 1}

Methode 4: Verwenden Sie Zip() + Dict()

Dies ist die einfachste Möglichkeit, zwei verschiedene Listen zu komprimieren und als Wörterbuch auszugeben.

# using zip + dict method
# define two lists that are to be zipped
ini_lis1 = ['a', 'b', 'c', 'd', 'e']
ini_lis2 = [1, 2, 3, 4]

# use zip()
result = dict(zip(ini_lis1, ini_lis2 *
        ((len(ini_lis1) + len(ini_lis2) - 1) // len(ini_lis2))))

# print the final results
print("Output Dict: ", str(result))

Im obigen Code definieren wir zunächst zwei verschiedene Listen und übergeben dann beim Definieren des Ergebnisses die Syntax oder den Code an dict(), das die Ausgabe im Wörterbuchdatenformat zurückgibt. Dabei werden zwei Listen mithilfe des Schlüsselworts zip komprimiert, das die Werte zweier verschiedener Listen aneinanderhängt.

Ausgabe

Die Ausgabe des folgenden Codes lautet:

Output Dict: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 1}

Methode 5: Verwenden Sie Itertools() + enumerate()

Bei dieser Methode verwenden wir die Itertools-Bibliothek und verwenden Enumerate beim Komprimieren zweier Listen.

# using itertools + enumerate
# Import itertools
from itertools import cycle

# define two lists
ini_lis1 = ['a', 'b', 'c', 'd', 'e']
ini_lis2 = [1, 2, 3, 4]

# zip the two lists using for loop and enumerate
result = {v: ini_lis2[i % len(ini_lis2)]
    for i, v in enumerate(ini_lis1)}

# print the final results
print("Output Dict : ", str(result))

Wie wir im obigen Code sehen können, importieren wir zunächst den Zyklus aus itertools und definieren dann zwei Listen unterschiedlicher Größe. Anschließend addieren (komprimieren) wir mit einer for-Schleife und einer Aufzählungsfunktion die Werte oder Elemente zweier verschiedener Listen und stellen die Werte dann in Form eines Wörterbuchs dar.

Ausgabe

Die Ausgabe des folgenden Codes lautet:

Output Dict : {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 1}

Fazit

In diesem Artikel diskutieren wir die Verwendung von sechs verschiedenen Methoden zum Komprimieren von zwei Listen unterschiedlicher Größe in Python und stellen Codebeispiele und Anweisungen bereit. Dieser Artikel hilft den Lesern, bei Bedarf ähnliche Vorgänge durchzuführen.

Das obige ist der detaillierte Inhalt vonKomprimieren von zwei Listen ungleicher Länge in einem Python-Wörterbuch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen