Mengapa Saya Mendapat 'TypeError: indeks senarai mestilah integer atau kepingan, bukan str' Apabila Menggabungkan Senarai dalam Python?

Patricia Arquette
Lepaskan: 2024-11-14 15:52:02
asal
303 orang telah melayarinya

Why Am I Getting

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:

  1. 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)
    Salin selepas log masuk
  2. 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):
    Salin selepas log masuk
  3. 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
    Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan