繁体   English   中英

切片索引TypeError和插入列表方法怪异的行为

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM