...海 我在向数组插入值时遇到问题。使用的编程语言是python。问题是,我需要在执行除法后向数组插入一个值。但是数组中的每个值总是0.0。 我在这里附上代码....
print len(extract_list1)
ratio1=range(len(extract_list1))
i=0
for word in extract_list1:
ratio1[i]=float(i/len(extract_list1))
print extract_list1[i],ratio1[i]
i+=1
ratio2=range(len(extract_list2))
i=0
for word in extract_list2:
ratio2[i]=float(i/len(extract_list2))
print extract_list2[i],ratio2[i]
i+=1
答案 0 :(得分:4)
我最好的猜测是你正在执行整数除法然后转换为浮点数,产生0.0
的值,这是卡在列表中的。你想在之前转换为float 。筛选代码墙并找出
然后发布生成值的代码。如果值正在进入列表中(并且您似乎表明它是),那么这与列表以及与生成值的方式无关。
正如Roger Pate在评论中指出的那样,您可以将行from __future__ import division
作为源代码的第一行(如果您使用的话,还是编码后的第一行),它会自动转换所有划分为浮点划分。然后,当您明确要截断整数除法时,可以使用//
作为运算符。
查看你的代码,问题是
float(i/len(extract_list2))
这应该是
float(i)/len(extract_list2))
另外,因为您多次使用extract_list2
和extract_list1
的长度,所以最好创建变量来存储它们。
L1 = len(extract_list1)
L2 = len(extract_list2)
只要您不更改列表的长度,就可以引用变量。这将为您节省一些函数调用,使您的代码更简洁,更易读。