在Python 合併清單時處理「類型錯誤:清單索引必須是整數或切片,而不是str」
在Python 中,嘗試存取使用字串索引的清單元素通常會導致“TypeError:列表索引必須是整數或切片,而不是str”錯誤。此錯誤通常在將兩個清單合併為單一數組時發生。
為了避免此錯誤,確保用於存取清單元素的索引是整數至關重要。以下是所提供的Python 程式碼中的具體問題以及解決這些問題的正確方法:
將array_length 轉換為整數:在原始程式碼中,對array_length進行賦值array_dates 長度的字串表示形式。相反,它應該是整數長度值,可以使用 len(array_dates) 獲得。
array_length = str(len(array_dates)) # Convert to: array_length = len(array_dates)
使用 range() for Loop: for循環遍歷 result_array 的索引。但是,循環定義使用 array_length 作為可迭代對象,它是一個字串。相反,使用 range(array_length) 來迭代整數。
for i in array_length: # Convert to: for i in range(array_length):
自動索引增量:在原始程式碼中,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中文網其他相關文章!