ホームページ >バックエンド開発 >Python チュートリアル >Python の「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」エラーを修正する方法

Python の「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」エラーを修正する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-19 06:24:031070ブラウズ

How to Fix the

TypeError: リスト インデックスは整数である必要があります

エラー「TypeError: リスト インデックスは str ではなく、整数またはスライスである必要があります」が発生する整数やスライスの代わりに文字列インデックスを使用してリスト項目にアクセスしようとします。このエラーは、CSV エクスポートのために 2 つのリストを 1 つの配列にマージするときによく発生します。

このエラーを回避するには、次の手順に従います。

  1. 2 番目のリストの長さを変換するインデックスは常に整数である必要があるため、(array_dates) を整数に変換します。

    array_length = len(array_dates)
  2. range 関数を使用して、新しい array_length 整数を反復処理します。これにより、反復子の値が自動的にインクリメントされます。

    for i in range(array_length):  # Use `xrange` for Python 2.
  3. 不要になったので、ループから行 i = 1 を削除します。

zip を使用して 2 つのリストを結合することによって、コードを合理化することもできます。それらは同じ長さです:

result_array = zip(array_dates, array_urls)
csv_file.writerows(result_array)

修正されたコードは次のとおりです:

def fill_csv(self, array_urls, array_dates, csv_file_path):
    array_length = len(array_dates)

    # We fill the CSV file
    with open(csv_file_path, "w") as file:
        csv_file = csv.writer(file, delimiter=';', lineterminator='\n')

        # We merge the two arrays in one
        result_array = []
        for i in range(array_length):
            result_array[i][0].append(array_urls[i])
            result_array[i][1].append(array_dates[i])

        csv_file.writerows(result_array)

以上がPython の「TypeError: リスト インデックスは Str ではなく、整数またはスライスである必要があります」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。