Mengendalikan 'TypeError: indeks senarai mestilah integer atau hirisan, bukan str' dalam Python Semasa Menggabungkan Senarai
Dalam Python, cuba mengakses elemen senarai menggunakan indeks rentetan selalunya menghasilkan 'TypeError: indeks senarai mestilah integer atau hirisan, bukan ralat str'. Ralat ini biasanya berlaku apabila menggabungkan dua senarai menjadi satu tatasusunan.
Untuk mengelakkan ralat ini, adalah penting untuk memastikan bahawa indeks yang digunakan untuk mengakses elemen senarai ialah integer. Di bawah ialah isu khusus dalam kod Python yang disediakan dan cara yang betul untuk menanganinya:
Menukar array_length kepada Integer: Dalam kod asal, array_length diberikan perwakilan rentetan panjang array_dates. Sebaliknya, ia mestilah nilai panjang integer, yang boleh diperoleh menggunakan len(array_dates).
array_length = str(len(array_dates)) # Convert to: array_length = len(array_dates)
Menggunakan julat() untuk Gelung: The for gelung berulang melalui indeks result_array. Walau bagaimanapun, definisi gelung menggunakan array_length sebagai lelaran, iaitu rentetan. Sebaliknya, gunakan julat(array_length) untuk lelaran melalui integer.
for i in array_length: # Convert to: for i in range(array_length):
Peningkatan Indeks Automatik: Dalam kod asal, i ditambah secara manual selepas setiap lelaran. Ini tidak diperlukan kerana gelung for secara automatik akan menambah pembolehubah indeks.
i += 1 # Remove this line
Pendekatan Alternatif Menggunakan zip():
Sebagai alternatif, untuk menggabungkan dua senarai yang sama panjang, seseorang boleh menggunakan fungsi zip(), yang mengambil elemen yang sepadan daripada setiap senarai dan mencipta senarai tupel baharu. Pendekatan ini selalunya lebih ringkas dan mengelakkan keperluan untuk pengindeksan manual.
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)
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'TypeError: indeks senarai mestilah integer atau kepingan, bukan str' Apabila Menggabungkan Senarai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!