将变量分配给列表项 python

assign variable to list item 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]

饮料被输入到 drinks 中,并且会根据输入的内容而有所不同。

即:饮料 = ['beer'、'beer'、'spirits'、'maltbeer']

drinks 是附加输入,仅接受作为进一步观察的变量之一。

使用各种饮料的字典:

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 计算并在末尾添加,并在不知道饮料的情况下实现了错误消息。

您可以使用字典将每种饮料类型保存为字典键。每种饮料的价值是它的百分比。

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 个整数除法会产生。