0

在 python 中,假设我有一个列表:

instruments = ['apd', 'dd', 'dow', 'ecl']

如何拆分这些列表以便创建:

apd[]
dd[]
dow[]
ecl[]

谢谢您的帮助。

4

2 回答 2

3

你会这样做:

dictionaries = {i:[] for i in instruments}

你会以这种方式引用每个列表:

dictionaries['apd']
dictionaries['dd']
dictionaries['dow']
dictionaries['ecl']

这被认为比在当前命名空间中实际拥有列表要好得多,因为它既污染又不符合 Python 标准。

mshsayem 有将列表放入当前范围的方法,但问题是,将它们放入当前范围有什么好处?

标准用例:

  • 您已经知道项目的名称,并想直接按名称引用它们,即apd.append
  • 您还不知道名称,但您将使用evalorlocals来获取列表,即eval('apd').appendlocals()['apd'].append

两者都可以使用字典来满足:

  • dictionaries['<some name can be set programatically or using a constant>'].append
于 2013-05-28T05:32:33.883 回答
1

尝试这个:

instruments = ['apd', 'dd', 'dow', 'ecl']
l_dict = locals()
for i in instruments:
    l_dict[i] = []

这将在本地范围内创建apd, dd, dow,列表。ecl不过,Snakes and Cofee 的想法更好。

于 2013-05-28T05:34:08.280 回答