繁体   English   中英

Python For 循环 创建不同的列表

[英]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_1lsts[1]将等效于上述lst_2lsts[2]将等效于上述lst_3 ,...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM