我练习列表切片,但是我有一些错误。
self.assert404()
会打印[1,2,3] [4,5,6,7,8,9,10,11]
但是当我使用li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11]
print li[:int(len(li)*0.3)]
print li[int(len(li)*0.3):]
时,它会出错。我该如何解决?
round()
----> 1 li[:(round(li)*0.3)]
li[:(round(li)*0.3)]
首先,我尝试添加TypeError: a float is required
float
但仍有错误
答案 0 :(得分:1)
您忘了带len()
函数调用:
li[:round(len(li)*0.3)]
但是,这会导致slice indices must be integers or None or have an __index__ method
错误。您应该将舍入边界值转换为整数:
li[:int(round(len(li)*0.3))]