2015-07-10 99 views
1
a= [6248.570994, 5282.059503, 5165.000653, 5130.795058, 5099.376451] 

一个办法:如何转换浮动名单蟒蛇为int列表

a=map(int, a) 

的其他方式:

int_a=[] 
for intt in a: 
    int_a.append(int(intt)) 

以上几种方式可以打印正确的答案,但是当我要排序的我遇到问题:

maxx=sorted(int_a,reverse=True)[:1]*1.2 
print maxx 

TypeError: can't multiply sequence by non-int of type 'float' 
+0

这是您使用 – felipsmartins

+0

哪个版本的Python对我的作品? – NightShadeQueen

+0

你可以把完整的追溯? –

回答

3

问题似乎是

maxx=sorted(int_a,reverse=True)[:1]*1.2 
print maxx 

...产生一个列表,而不是一个整数,你不能用一个浮点数相乘的列表。为了获得1.2倍使用此代码列表中的最大元素,下面将工作:

maxx=sorted(int_a,reverse=True)[0]*1.2 
print maxx 

...虽然这将是更有效地使用:

maxx=max(int_a)*1.2 
print maxx 
+1

这修正了'TypeError'和工作,但找到最大的元素乘以1.2它会做更多的意义去做'max(int_a)* 1.2' –

+0

我同意'max(int_a)'会更好,如果目标是找到最大元素乘以1.2。 – Simon

+0

我误解了名单和号码。想了很多。 –

1

任何具体的原因,你没有使用max? 它的声明可能仅仅是:

print max(int_a) * 1.2