python:只附加'0'

时间:2010-08-05 18:46:22

标签: python

  big_set=[]
  for i in results_histogram_total:
    big_set.append(100*(i/sum_total))

big_set返回[0,0,0,0,0,0,0,0........,0]

这是错误的,因为我选中了i并且它是>0

我做错了什么?

4 个答案:

答案 0 :(得分:5)

在Python 2.x中,使用from __future__ import division来获得理智的分裂行为。

答案 1 :(得分:3)

尝试此list comprehension而不是

big_set = [100*i/sum_total for i in results_histogram_total]

请注意/在Python2中截断,因此您可能希望使用

big_set = [100.0*i/sum_total for i in results_histogram_total]

答案 2 :(得分:2)

如果sum_total是一个整数(sum_total .__ class__等于?), python似乎使用整数除法。

尝试i / float(sum_total)。

答案 3 :(得分:2)

可能与浮动分工有关。

我可能小于sum_total,整数除法返回0.

100 * 0为0.

尝试将其投射到浮动。