本文介绍了切片索引必须为整数、无或具有__index__方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Python进行一些操作。我想将一个列表(平稳)分成几个列表(L[i]),但我有以下错误消息:

  File "C:UsersadescampSkycraperskycraper.py", line 20, in <module>
    item = plateau[debut:fin]
TypeError: slice indices must be integers or None or have an __index__ method

相关行item = plateau[debut:fin]

from math import sqrt

plateau = [2, 3, 1, 4, 1, 4, 2, 3, 4, 1, 3, 2, 3, 2, 4, 1]

taille = sqrt(len(plateau))

# Division en lignes
L = []
i = 1
while i < taille:
    fin = i * taille
    debut = fin - taille
    item = plateau[debut:fin]
    L.append(item)
    i += 1

推荐答案

您的debutfin值是浮点值,而不是整数,因为taille是浮点数。

将这些值改为整数:

item = plateau[int(debut):int(fin)]

或者,使taille为整数:

taille = int(sqrt(len(plateau)))

这篇关于切片索引必须为整数、无或具有__index__方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-27 10:08