2015-12-18 208 views
1

我正在尋找一種方法,通過具有相同的方式將變量分配給特定的列表項。這是我用來啓發事物的代碼。將變量賦值給列表項python

count = 0 
    beer = 5/100 
    maltbeer = 7/100 
    tablewine = 12/100 
    fortifiedwine = 17/100 
    aperitif = 24/100 
    spirits = 40/100 
    percentageCalc = 0 
    for i in drinks: 
     count =+ 1 
     percentageCalc = percentageCalc + drinks[count] 

的飲料inputed到飲料,可根據什麼inputed變化。

即:飲料= [「啤酒」,「啤酒」,「精神」,「maltbeer」]

飲料附加只接受所看到進一步向上的變量之一的輸入。

回答

1

使用字典用於各種類型的飲料:

abv = {"beer": 5 
     "maltbeer": 7, 
     "tablewine": 12, 
     "fortifiedwine": 17, 
     "aperitif": 24, 
     "spirits": 40} 

percentage = 0 

for drink in drinks: 
    if drink in abv: 
     percentage += percentageCalc + abv[drink] 
    else: 
     print("don't know about %s" % drink) 

percentage /= 100.0 

我還除去從個別項目/100計算,並在結束時加入,和在情況下實現的錯誤消息的飲料是未知。

+0

非常感謝你這麼快速的回答!我的老師讓我專注於visualbullsh * t,這讓我忘記了很多關於Python的東西。我很愚蠢,認爲我可以放輕鬆自在。 – Nik

0

您可以使用字典將每種飲料類型保存爲字典密鑰。每種飲料的價值是其百分比。

drink_strength = { 
    'beer': 5/100, 
    'maltbeer': 7/100, 
    'tablewine': 12/100, 
    'fortifiedwine': 17/100, 
    'aperitif': 24/100, 
    'spirits': 40/100, 
} 

drinks = ['beer', 'beer', 'spirits', 'maltbeer', 'lemonade'] 
percentage_calc = sum(drink_strength.get(drink, 0) for drink in drinks) 
print(percentage_calc) 

 
0.5700000000000001 

百分比通過依次添加百分比對於每個飲料,或者,如果飲料是未知的計算出的輸出,假設0%的。

N.B.上面的代碼假設的Python 3,如果使用Python 2,你可以添加到您的文件的頂部:

from __future__ import division 

,這樣,例如7/100 = 0.7而不是0,因爲Python 2的整數除法會產生。