首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Python TypeError: list indices must be integers, not str 解決方案

     編輯:程式設計綜合問答

錯誤原因

代碼中使用字符串作為列表索引:

tfidf[corterm]  # corterm 是字符串,如 "123"

Python 列表**只接受整數索引**,字符串會拋出 TypeError。

解決方法

  1. 轉換為整數:
    tfidf[int(corterm)]
    
    前提:corterm 確實是純數字字符串(如 "0"、"42")。
  2. 若需字符串鍵值查找,改用字典:
    tfidf_dict = {str(i): v for i, v in enumerate(tfidf_list)}
    # 後續使用 tfidf_dict[corterm]
    
  3. 檢查數據來源: 確認 corterm 為何為字符串(JSON 解析、CSV 讀取常產生字符串數字),在讀取階段轉型更乾淨。

調試技巧

print(type(corterm), corterm)  # 確認類型與值
print(isinstance(corterm, str) and corterm.isdigit())  # 判斷是否純數字串

總結

列表索引必須是整數。遇到此錯誤,直接 int() 轉換或改用字典結構。養成「邊界轉型」習慣:數據進入業務邏輯前統一轉為預期類型。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved