使用字符串格式运算符动态命名全局变量

时间:2019-04-21 13:13:15

标签: python

我正在尝试为列表中的每个元素创建一个变量。我只想提供元素本身作为新名称的基础,但是Python不允许我那样创建它,也不会引发任何错误。当我在%符号前加入任何字符时,它将创建变量。请参见下面的代码:

sample_tickers

退出:['AAPL', 'MSFT', 'AMZN', 'FB', 'JPM']

作品:

for ticker in sample_tickers:

    globals()["var%s"%ticker] = ticker

不起作用:

for ticker in sample_tickers:
    globals()["%s"%ticker] = ticker

1 个答案:

答案 0 :(得分:1)

您可以简单地做到:

sample_tickers = ['AAPL', 'MSFT', 'AMZN', 'FB', 'JPM']

for ticker in sample_tickers:
    globals()[ticker] = ticker

但是,建议创建字典而不是动态命名变量:

ticker_dict = dict(zip(sample_tickers,sample_tickers))
# {'AAPL': 'AAPL', 'MSFT': 'MSFT', 'AMZN': 'AMZN', 'FB': 'FB', 'JPM': 'JPM'}

然后您可以像这样访问:

ticker_dict['AAPL'] # returns 'AAPL'