2017-11-11 205 views
-1

我要追加浮到列表中,但我得到了这样的错误:如何将float添加到列表中?

<ipython-input-47-08d9c3f8f180> in maxEs() 
    12 Es = lists[0]*0.3862 + lists[1]*0.3091 + lists[2]*0.4884 
    13 aaa = [] 
---> 14 Es.append(aaa) 
    15 

AttributeError: 'float' object has no attribute 'append' 

我想我不能追加浮到列表中。我可以添加浮动列表另一种方式吗?

这是我的代码:

import math 

def maxEs(): 
    for a in range(1, 101): 
     for b in range(1,101): 
      for c in range(1,101): 
       if a+b+c == 100 : 
        lists = [] 
        lists.append(a*0.01) 
        lists.append(b*0.01) 
        lists.append(c*0.01) 
        Es = lists[0]*0.3862 + lists[1]*0.3091 + lists[2]*0.4884 
        aaa = [] 
        Es.append(aaa) 
+0

您正在尝试将'aaa'列表添加到浮点'Es',它应该是'aaa.append(Es)' – Alperen

+0

另外请注意,您在最内层的每次迭代中重新初始化并覆盖'lists'和'aaa'循环。 –

+0

哦,我的上帝......我觉得我很蠢......我很抱歉... –

回答

1

我不知道你想要什么,而是你正试图列表追加到浮动不是倒过来。

应该

aaa.append(Es) 
+0

谢谢你的评论!我觉得我很愚蠢.. –

0

对方回答已经说明你的代码的主要问题,但还有更多:

  • 前面已经说了,它必须是aaa.append(Es)(你这样做是正确的对于另一个列表)
  • 谈到另一个列表:你根本不需要它;只需在公式中直接使用值
  • aaa在循环的每次迭代中都被重新初始化并被覆盖;您应该将其移至顶端
  • 您不需要内循环即可找到c;一旦你知道ab,就可以计算出c,使其满足条件
  • 你也可以限制b循环,所以结果不超过100
  • 最后,你应该返回一些结果(max ?的aaa也许)

我们不知道究竟是什么代码试图实现的,但也许试试这个:

def maxEs(): 
    aaa = [] 
    for a in range(1, 98 + 1): 
     for b in range(1, 99-a + 1): 
      c = 100 - a - b 
      Es = 0.01 * (a * 0.3862 + b * 0.3091 + c * 0.4884) 
      aaa.append(Es) 
    return max(aaa)