如果有任何方法可以从for循环中当前检查项目的名称创建新变量,那么我就是这样做的:
list = ["a", "b", "c"]
for item in list:
item_new = 1
print a_new
print b_new
print c_new
我想要输出的是:
1
1
1
编辑: 哎呀,好的,请注意:P
知道dict在这种情况下会起作用,只是想检查上面的方法是否可行。显然不是!
答案 0 :(得分:4)
你不应该对变量这样做。你正在寻找一本字典:
list = ["a", "b", "c"]
variables = {}
for item in list:
variables[item] = 1
print variables["a"]
print variables["b"]
print variables["c"]
答案 1 :(得分:2)
locals()
函数返回对dict
的引用,您可以在其中检查局部变量,每个键将本地变量名称表示为字符串:
>>> locals()
{'a': 2, 'b': 9, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, '__name__': '__main__', '__doc__': None}
>>> var = "Some text"
>>> locals()
{'var': 'Some text', 'a': 2, 'b': 9, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, '__name__': '__main__', '__doc__': None}
还有globals()
函数,您不仅可以使用它来检查全局变量,还可以动态创建新的全局变量:
>>> globals()['ZZ'] = 123
>>> ZZ
123
但是请,不要这样做。这个程序是不可维护的。使用普通dict
使用您的代码创建自定义元素。这个程序更具可读性和可维护性:
list = ["a", "b", "c"]
d = {}
for item in list:
d[item] = 1
print d['a']
print d['b']
print d['c']
答案 2 :(得分:1)
而不是创建新变量,字典似乎是一种更好的方法。
此外,最好不要使用变量名list
,因为这已经是函数的名称。
L = ["a", "b", "c"]
d = {}
for item in L:
d["{}_new".format(item)] = 1
print d["a_new"]
print d["b_new"]
print d["c_new"]