list indices必须是整数或切片,而不是float

时间:2016-03-09 12:10:51

标签: python integer divmod

我有一个sortedInfected列表,它由整数和未知长度组成。

当我运行这个脚本时,我得到错误:" list indices必须是整数或切片,而不是float"。

我该如何解决这个问题?

medianList =[]
b = (len(sortedInfected) / 2)

if len(sortedInfected) % 2 == 0:

    median = (sortedInfected[b] + sortedInfected[b-1]) // 2
    medianList.append(median)
else:

    median = sortedInfected[b - 0.5]
    medianList.append(median)

1 个答案:

答案 0 :(得分:2)

在Python 3.x中,/运算符执行浮点除法。如果您希望int师使用//

b = len(sortedInfected) // 2

因此,您可以将代码更改为

medianList =[]
b = (len(sortedInfected) // 2)

if len(sortedInfected) % 2 == 0:    
    median = (sortedInfected[b] + sortedInfected[b-1]) // 2
    medianList.append(median)
else:    
    median = sortedInfected[b]
    medianList.append(median)