我正在尝试为列表中的每个元素创建一个变量。我只想提供元素本身作为新名称的基础,但是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
答案 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'