簡體   English   中英

字符串索引在Python中必須為整數

[英]String Indices Must be Integers in Python

我正在使用Python解決競賽問題。 我收到此錯誤。 我是新手,對Python經驗不足。

    for kek in sorteddic:
        lengthitem = int(len(kek))
        questionstring = start[0, lengthitem]

kek本質上是“ sorteddic”中的“ item”,它是字符串的數組。

我得到的錯誤是:

questionstring = start[0, lengthitem]
TypeError: string indices must be integers

有人可以幫忙嗎? 謝謝。

這是因為您要用作索引的項目0, lengthitem不是整數,而是一個整數元組 ,如下所示:

>>> x = 1 : type(x)
<class 'int'>
>>> x = 1,2 : type(x)
<class 'tuple'>

如果您打算獲取數組的一部分(雖然不完全清楚,但我保證這是一個相當安全的猜測),則使用的正確運算符是: ,如下所示:

questionstring = start[0:lengthitem]

或,因為0是默認起點:

questionstring = start[:lengthitem]

以下文字記錄顯示了您當前的代碼片段失敗的方式以及正確的處理方式:

>>> print("ABCDE"[1])
B

>>> print("ABCDE"[1,3])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: string indices must be integers

>>> print("ABCDE"[1:3])
BC

切片符號使用冒號 ,而不是逗號 (除非您在numpy中逗號分隔切片中的維度,盡管在引擎蓋下被視為切片對象的元組)。 因此使用:

questionstring = start[0:lengthitem]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM