(我在这个网站上搜索+互联网,但无法找到答案)
我从:
开始myList = ['a', 'b', 'c']
我希望得到类似于pythonic的东西
a = []
b = []
c = []
或
a, b, c = ([] for i in range(3))
那就是我想创建与原始列表中的元素一样多的列表,并使用(赋值?)原始列表中的元素作为创建列表的名称。
你有什么建议吗?
答案 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 + ' = []')
这正是我所追求的(并且肯定会更紧凑地编写)。