[英]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.