最简洁的方法来定义多个变量

时间:2012-01-16 18:53:20

标签: python

我的数据包含大约10,000个条目。每行是特定货币的产品价格。例如:

- Purchase 1 = 10.25 USD
- Purchase 2 = 11.76 SEK

我有十种不同的数据库列来表示每种货币的总销售额(这是一项要求)。列是earnings_in_usdearnings_in_sekearnings_in_eur等。在我对数据库执行insert语句的函数中,我需要定义必要的变量。默认情况下,所有其他条目将为0.00。这基本上是完成我需要做的事情的代码:

if currency == 'USD':
    earnings_in_usd = value
elif currency == 'SEK':
    earnings_in_sek = value
elif ...

有没有更简单的方法来实现这一点(对于像income_in_ $ = value这样的方法)?

4 个答案:

答案 0 :(得分:6)

使用以货币为索引的defaultdict

from collections import defaultdict

earnings = defaultdict(float)  # float has a default value of 0.

使用这一行:

,而不是你的if-then-else
earnings[currency] = value

并使用

检索收入,例如US $
earnings["USD"]

答案 1 :(得分:0)

也许使用字典?

earnings = {}
earnings[currency] = value

答案 2 :(得分:0)

这样做的一种方法是使用list comprehension

,这可能会让人感到困惑。
earnings_in_usd, earnings_in_sek, ... = [(value if currency == c else 0) for c in CURRENCIES]

缺点是左侧必须包含所有变量,而CURRENCIES必须是一个字符串常量列表,其顺序与左侧的变量完全相同。就像我说的,如果你篡改程序的其他部分,这可能会很好地破解......

答案 3 :(得分:-1)

如果收入是对象/数组,那么

earnings[currency] = value

earnings.currency = value;