![](/img/trans.png)
[英]Use strings as slice indices in Python ? (TypeError: slice indices must be integers or None or have an __index__ method)
[英]Slice indices TypeError and Insert list method weird behavior
我有以下代码:
a = [[0, 4]]
b = '1','2','3','4','5'
c = '*a3b*'
for f in b:
if (f in c[a[0][0]:a[0][1]]):
a[0].insert(0,f)
它返回:
TypeError: slice indices must be integers or None or have an __index__ method
但是切片索引已经是整数了,不是吗? 这是怎么回事? 我也做了(并且工作,不知道为什么):
a[0].insert(0,int(f))
在循环执行一次insert
(对于'3'
)之后, a
的值为[['3', 0, 4]]
。 因此,下次尝试切片时,它将尝试切片c['3':0]
,在此之前切片c[0:4]
。
更改为a[0].insert(0,int(f))
通过使a
的值[[3, 0, 4]]
a[0].insert(0,int(f))
使其“起作用”,因此切片变为c[3:0]
,结束切出什么,但使用有效的整数进行。 您的代码逻辑看起来很奇怪,但是除了“您需要更加小心自己的类型”和“我不确定insert
是否在按预期的方式运行”之外,我无法提供其他建议”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.