Pythonic方法从列表中创建独立列表?

时间:2015-11-24 12:17:14

标签: python list python-3.x python-3.4

(我在这个网站上搜索+互联网,但无法找到答案)

我从:

开始
myList = ['a', 'b', 'c']

我希望得到类似于pythonic的东西

a = []
b = []
c = []

a, b, c = ([] for i in range(3))

那就是我想创建与原始列表中的元素一样多的列表,并使用(赋值?)原始列表中的元素作为创建列表的名称。

你有什么建议吗?

5 个答案:

答案 0 :(得分:6)

字典听起来很适合这种情况

<强>代码:

myList = ['a', 'b', 'c']
dict_var=dict()
for key in myList:
    dict_var[key]=list()
print dict_var

<强>输出:

{'a': [], 'c': [], 'b': []}

备注:

  • 您仍然可以使用append,extend etc.,.
  • 等变量列表执行所有操作

答案 1 :(得分:6)

您可以简单地创建列表字典,而不是创建新变量,然后您可以使用名称访问各个列表,例如

IsNullOrEmpty

现在,您可以使用列表,例如

>>> myList = ['a', 'b', 'c']
>>> myDict = {item: [] for item in myList}
>>> myDict
{'c': [], 'a': [], 'b': []}

答案 2 :(得分:5)

Pythonic方式是使用字典

myDict = {'a': [], 'b':[], 'c':[]}

myDict['a'].append("hello world")
print myDict['a'][0] # hello world

您可以使用列表创建

myList = ['a', 'b', 'c']

myDict = {}
for x in myList:
   myDict[x] = []

答案 3 :(得分:1)

您提出的问题可以通过以下方式实现:

myList = ['a', 'b', 'c']
for item in myList:
    eval("{} = []".format(item))

但也许你应该使用像其他人提到的列表字典。

另见How can you dynamically create variables via a while loop?

答案 4 :(得分:1)

感谢大家的投入。经过互联网搜索后,我出来了:

myList = ['a', 'b', 'c']
for item in myList:
 exec(item + ' = []')

这正是我所追求的(并且肯定会更紧凑地编写)。