Das Zusammenführen mehrerer Listen in Python

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In Python können wir zwei oder mehr Listen zu einer einzigen Liste zusammenführen, indem wir verschiedene Methoden verwenden. Eine solche Methode besteht darin, Elemente aus jeder der Eingabelisten anhand ihrer Positionen zu kombinieren. In dieser Herausforderung müssen Sie eine Funktion schreiben, die mehrere Listen zu einer Liste von Listen zusammenführt.

Listen zusammenführen

Schreiben Sie eine Funktion namens merge(*args, fill_value=None), die zwei oder mehr Listen als Argumente nimmt und eine Liste von Listen zurückgibt. Die Funktion sollte Elemente aus jeder der Eingabelisten anhand ihrer Positionen kombinieren. Wenn eine Liste kürzer als die längste Liste ist, sollte die Funktion fill_value für die verbleibenden Elemente verwenden. Wenn fill_value nicht angegeben ist, sollte der Standardwert None sein.

Ihre Aufgabe ist es, die merge()-Funktion zu implementieren.

def merge(*args, fill_value = None):
  max_length = max([len(lst) for lst in args])
  result = []
  for i in range(max_length):
    result.append([
      args[k][i] if i < len(args[k]) else fill_value for k in range(len(args))
    ])
  return result
merge(['a', 'b'], [1, 2], [True, False]) ## [['a', 1, True], ['b', 2, False]]
merge(['a'], [1, 2], [True, False]) ## [['a', 1, True], [None, 2, False]]
merge(['a'], [1, 2], [True, False], fill_value = '_')
## [['a', 1, True], ['_', 2, False]]

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie in Python zwei oder mehr Listen zu einer Liste von Listen zusammenführen. Sie haben auch gelernt, wie Sie die max()-Funktion, die Listenkomprehension und die range()-Funktion verwenden, um das Problem zu lösen. Denken Sie daran, den fill_value-Parameter zu verwenden, um die fehlenden Werte in den kürzeren Listen auszufüllen.