Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich beim Zusammenführen von Listen in Python die Meldung „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht str'?
Behandlung von „TypeError: Listenindizes müssen ganze Zahlen oder Slices sein, nicht str“ in Python beim Zusammenführen von Listen
In Python beim Zugriffsversuch Ein Listenelement, das einen String-Index verwendet, führt häufig zum Fehler „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht str“. Dieser Fehler tritt normalerweise auf, wenn zwei Listen in einem einzigen Array zusammengeführt werden.
Um diesen Fehler zu vermeiden, muss unbedingt sichergestellt werden, dass der Index, der für den Zugriff auf Listenelemente verwendet wird, eine Ganzzahl ist. Nachfolgend finden Sie die spezifischen Probleme im bereitgestellten Python-Code und die richtige Lösung:
Array-Länge in eine Ganzzahl konvertieren: Im Originalcode ist Array-Länge zugewiesen die String-Darstellung der Länge von array_dates. Stattdessen sollte es der ganzzahlige Längenwert sein, der mit len(array_dates) erhalten werden kann.
array_length = str(len(array_dates)) # Convert to: array_length = len(array_dates)
Verwenden von range() for Loop: Das for Die Schleife durchläuft die Indizes von result_array. Die Schleifendefinition verwendet jedoch array_length als Iterable, bei dem es sich um einen String handelt. Verwenden Sie stattdessen „range(array_length)“, um ganze Zahlen zu durchlaufen.
for i in array_length: # Convert to: for i in range(array_length):
Automatische Indexerhöhung: Im Originalcode wird i nach jeder Iteration manuell erhöht. Dies ist nicht erforderlich, da die for-Schleife die Indexvariable automatisch inkrementiert.
i += 1 # Remove this line
Alternativer Ansatz mit zip():
Alternativ: Um zwei Listen gleicher Länge zusammenzuführen, kann man die Funktion zip() verwenden, die die entsprechenden Elemente aus jeder Liste übernimmt und eine neue Liste von Tupeln erstellt. Dieser Ansatz ist oft prägnanter und vermeidet die Notwendigkeit einer manuellen Indizierung.
dates = ['2020-01-01', '2020-01-02', '2020-01-03'] urls = ['www.abc.com', 'www.cnn.com', 'www.nbc.com'] csv_file_path = '/path/to/filename.csv' with open(csv_file_path, 'w') as fout: csv_writer = csv.writer(fout, delimiter=';', lineterminator='\n') result_array = zip(dates, urls) csv_writer.writerows(result_array)
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Zusammenführen von Listen in Python die Meldung „TypeError: Listenindizes müssen Ganzzahlen oder Slices sein, nicht str'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!