2017-11-11 201 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)