在 Python 中合併列表時,為什麼我會收到'TypeError:列表索引必須是整數或切片,而不是 str”?

Patricia Arquette
發布: 2024-11-14 15:52:02
原創
303 人瀏覽過

Why Am I Getting

在Python 合併清單時處理「類型錯誤:清單索引必須是整數或切片,而不是str」

在Python 中,嘗試存取使用字串索引的清單元素通常會導致“TypeError:列表索引必須是整數或切片,而不是str”錯誤。此錯誤通常在將兩個清單合併為單一數組時發生。

為了避免此錯誤,確保用於存取清單元素的索引是整數至關重要。以下是所提供的Python 程式碼中的具體問題以及解決這些問題的正確方法:

  1. 將array_length 轉換為整數:在原始程式碼中,對array_length進行賦值array_dates 長度的字串表示形式。相反,它應該是整數長度值,可以使用 len(array_dates) 獲得。

    array_length = str(len(array_dates))
    # Convert to:
    array_length = len(array_dates)
    登入後複製
  2. 使用 range() for Loop: for循環遍歷 result_array 的索引。但是,循環定義使用 array_length 作為可迭代對象,它是一個字串。相反,使用 range(array_length) 來迭代整數。

    for i in array_length:
    # Convert to:
    for i in range(array_length):
    登入後複製
  3. 自動索引增量:在原始程式碼中,i 在每次迭代後手動遞增。這是不必要的,因為 for 迴圈會自動遞增索引變數。

    i += 1
    # Remove this line
    登入後複製

使用zip() 的替代方法

:

或者,要合併兩個長度相等的列表,可以使用zip() 函數,該函數從每個列表中獲取相應的元素並建立新的元組列表。這種方法通常更簡潔,並且無需手動索引。
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)
登入後複製

以上是在 Python 中合併列表時,為什麼我會收到'TypeError:列表索引必須是整數或切片,而不是 str”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板