[英]Python For loops Creating Diffrent Lists
我有一个想法,但不知道如何执行。
我有一个变量值 EG:5 现在我希望我的 python 程序创建 5 个不同名称的不同列表,例如:list1 = [] list2 = []...
我不知道这是否可能。 当您说list1
时,您的意思是list1
是列表变量的标识符。 我认为程序不可能在自身内部创建标识符(或者至少我不知道如何)。
当然,您可以编写一个 Python 程序,该程序编写另一个 Python 程序,其中有具有这些标识符的变量,然后发挥创意:
VAL = 5 # can change this
f = open("lists.py", "w")
for i in range(1, VAL + 1):
f.write("list" + str(i) + " = []\n")
f.close()
Output (lists.py):
list1 = []
list2 = []
list3 = []
list4 = []
list5 = []
早安雅各,
我在阅读您的问题时遇到了一些困难。 但让我试着回答你的问题。
没有简单的方法可以生成 python 变量。 我知道的唯一方法是将代码生成为 str 然后执行它。
def generate_code(n):
ret = ""
for i in range(1, n + 1):
var_name = "lst_" + str(i)
ret += var_name + " = []\n"
return ret
code = generate_code(5)
print(code)
exec(code)
打印代码的位置
lst_1 = []
lst_2 = []
lst_3 = []
lst_4 = []
lst_5 = []
惯用的解决方案是创建一个列表列表。 像下面这样的东西。
lsts = [[] for i in range(5)]
然后,您可以使用索引以非常相似的方式访问您的子列表,然后使用您要求的变量。 lsts[0]
将等效于上述lst_1
, lsts[1]
将等效于上述lst_2
, lsts[2]
将等效于上述lst_3
,...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.