Python—如何生成末尾带有新数字的变量列表

Python—如何生成末尾带有新数字的变量列表,python,variables,auto-generate,Python,Variables,Auto Generate,我想做的是找到一种更简洁的方法来创建空列表的变量,除了末尾的不同数字之外,这些变量彼此相似 #For example: var1 = [] var2 = [] var3 = [] var4 = [] #... varN = [] #with the end goal of: var_list = [var1,var2,var3,var4, ... varN] 使用: 或者一个简单的for循环 empt_lists = [] for n in range(N): empt_lists.

我想做的是找到一种更简洁的方法来创建空列表的变量,除了末尾的不同数字之外,这些变量彼此相似

#For example:
var1 = []
var2 = []
var3 = []
var4 = []
#...
varN = []

#with the end goal of:
var_list = [var1,var2,var3,var4, ... varN]
使用:

或者一个简单的for循环

empt_lists = []
for n in range(N):
    empt_lists.append([])

请注意,
[[]]*N
不起作用,它将对所有项目使用相同的指针

您可以连接变量赋值,如果这是您的意思,您可以将它们全部设置为[] var1,var2,var3=[]
是否希望将所有变量设置为空数组或实际数动态变量被认为是非常糟糕的做法。因此,我不会给出使用它们的解决方案。:)

正如@GarrettLinux所指出的,您可以轻松地进行列表理解,从而创建列表列表。然后,您可以通过索引(即
lst[0]
lst[1]
等)访问这些列表

但是,如果您希望命名这些列表(即
var1
var2
,等等),这是我认为您想要的,那么您可以从以下位置使用defaultdict:

演示:

>>离散余弦变换
defaultdict(,{'var5':[],'var4':[],'var1':[],'var3':[],'var2':[])
>>>dct[“var1”]
[]
>>>dct[“var1”].append('value')
>>>dct[“var1”]
[“价值”]
>>>离散余弦变换
defaultdict(,{'var5':[],'var4':[],'var1':['value'],'var3':[],'var2':[]))
>>>

如您所见,此解决方案非常类似于动态变量的效果。

好的……可能的解决方案是生成类属性,您可以在以下情况下使用这些属性:

class MyClass:
    pass
myinstance = MyClass()  # if you want instance for example
setattr(myinstance, "randomname", "desiredvalue")
print myinstance.randomname  # wonderfull!

在你的情况下,如果可能的话,把它放在清单上

我也有这个问题。最后,我把所有的变量都列了出来,并列出了变量名

var1 = 123456 
var2 = 123457 
list1 = [var1, var2] 
raninput = input("Words") 
if raninput not in list1: 
  print("Hi")

你应该解释真正的问题。动态创建变量不是一个好主意。
>>> 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': []})
>>>
class MyClass:
    pass
myinstance = MyClass()  # if you want instance for example
setattr(myinstance, "randomname", "desiredvalue")
print myinstance.randomname  # wonderfull!
var1 = 123456 
var2 = 123457 
list1 = [var1, var2] 
raninput = input("Words") 
if raninput not in list1: 
  print("Hi")