使用round()时如何在列表切片中使用float

时间:2016-04-23 21:30:26

标签: python-2.7

我练习列表切片,但是我有一些错误。

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

但仍有错误

1 个答案:

答案 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))]