我想做的是找到一种更简洁的方法来创建彼此相似的空列表变量,但最后的数字不同。
#For example:
var1 = []
var2 = []
var3 = []
var4 = []
#...
varN = []
#with the end goal of:
var_list = [var1,var2,var3,var4, ... varN]
我想做的是找到一种更简洁的方法来创建彼此相似的空列表变量,但最后的数字不同。
#For example:
var1 = []
var2 = []
var3 = []
var4 = []
#...
varN = []
#with the end goal of:
var_list = [var1,var2,var3,var4, ... varN]
使用列表理解:
[[] for n in range(N)]
或一个简单的 for 循环
empt_lists = []
for n in range(N):
empt_lists.append([])
请注意,[[]]*N
这不起作用,它将对所有项目使用相同的指针!!!
好的...可能的解决方案是生成类属性,您可以在之后使用:
class MyClass:
pass
myinstance = MyClass() # if you want instance for example
setattr(myinstance, "randomname", "desiredvalue")
print myinstance.randomname # wonderfull!
如果可能的话,把它放在列表中!
您可以连接变量分配,如果这就是您的意思,您可以将它们全部设置为 [] var1, var2, var3 = [] 您是否希望将所有变量设置为空数组或实际数字
动态变量被认为是一种非常糟糕的做法。因此,我不会给出使用它们的解决方案。:)
正如@GarrettLinux 指出的那样,您可以轻松地进行列表推导,从而创建列表列表。然后,您可以通过索引(即 , 等)访问lst[0]
这些lst[1]
列表
但是,如果您希望命名这些列表(即var1
,var2
等),这就是我认为您想要的,那么您可以使用来自 的 defaultdict collections.defaultdict
:
from collections import defaultdict
dct = defaultdict(list)
for i in xrange(5):
dct["var{}".format(i+1)]
演示:
>>> dct
defaultdict(<type 'list'>, {'var5': [], 'var4': [], 'var1': [], 'var3': [], 'var2': []})
>>> dct["var1"]
[]
>>> dct["var1"].append('value')
>>> dct["var1"]
['value']
>>> dct
defaultdict(<type 'list'>, {'var5': [], 'var4': [], 'var1': ['value'], 'var3': [], 'var2': []})
>>>
如您所见,此解决方案非常模仿动态变量的效果。
我也有这个问题。我最终制作了我的所有变量并制作了一个包含变量名的列表
var1 = 123456
var2 = 123457
list1 = [var1, var2]
raninput = input("Words")
if raninput not in list1:
print("Hi")