【问题标题】:Dynamically create names inside a dictionary using multiple variables使用多个变量在字典中动态创建名称
【发布时间】:2021-06-13 06:42:26
【问题描述】:

也有类似的问题,但我没能完全正确 - 为重复道歉。我想做的是在迭代时根据变量在字典中创建数据框名称。

d = {}
market = 'SPX'
datatype = 'prices'

for j in range(10):
    year = 2010+j
    start = str(year) + '-01-01'
    end = str(year+2) + '-01-01'
        
    d['{market}_{datatype}_from_{start}_to{end}'] = 'foo'

我想调用字典的元素

spx_prices_from_2010-01-01_to_2012-01-01
spx_prices_from_2011-01-01_to_2013-01-01
...

非常感谢您

【问题讨论】:

  • 您忘记了字符串格式。将d['{market}_{datatype}_from_{start}_to{end}'] 更改为d[f'{market}_{datatype}_from_{start}_to{end}']

标签: python dictionary variables dynamic


【解决方案1】:

如果您使用的是 Python 3,则可以使用f-strings

d = {}
market = 'SPX'
datatype = 'prices'

for j in range(10):
    year = 2010+j
    start = str(year) + '-01-01'
    end = str(year+2) + '-01-01'
        
    d[f"{market}_{datatype}_from_{start}_to_{end}"] = 'foo'

或者,您可以使用strformat 方法。

【讨论】:

  • 哇,这很容易。非常感谢!!
  • 如果我还没有强加太多,还有一个更快速的问题:是否有一种简单的方法来分配字典本身的名称 - 根据变量将名称从 d 更改为“SPX_Prices”?
  • 我会避免这种情况,只使用一个集合(例如 d['SPX']['prices'] = ...)。
  • 谢谢,但那不行……我想。我想遍历市场和数据类型 - 并为每个创建一个数据框字典。所以我想动态命名这些字典。再次,我非常感激
  • 字典将被嵌入到外部字典中。你可以写:``` 市场中的市场:数据类型中的数据类型:d["{}_{}".format(market, datatypes)] = ... ``` 然后你可以使用@访问所有字典987654326@.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 2014-10-01
  • 1970-01-01
  • 2019-07-25
  • 2022-01-16
  • 2011-07-13
相关资源
最近更新 更多