Python - 我可以创建一个创建唯一列表的函数吗?

时间:2017-08-05 00:27:53

标签: python list

    def listmaker(n):
        if n % 4 == 0
        list ++ 'n' == []
        ....

我希望你能收集我的意图,该功能是为了创建一个列表,更一般地说,是多个列表。列表需要由函数确定它们的名称以保持唯一,并且据我所知,没有简单的方法可以模拟我尝试的内容(用于命名或创建)。有没有办法让一个函数创建列表?

2 个答案:

答案 0 :(得分:0)

如果您想要许多列表,请考虑使用字典:

from collections import OrderedDict

amount = 10
nums = list(range(1,amount+1)) # 1,2,3... ,n
OrderedDict(("list{}".format(num), []) for num in nums)

输出

OrderedDict([('list1', []),
             ('list2', []),
             ('list3', []),
             ('list4', []),
             ('list5', []),
             ('list6', []),
             ('list7', []),
             ('list8', []),
             ('list9', []),
             ('list10', [])])

或者简单地说:

[[] for _ in range(11)]

输出

[[], [], [], [], [], [], [], [], [], [], []]

也许可以在你的函数中插入其中一个。

答案 1 :(得分:0)

如果要将变量设置为空列表,则可以执行以下操作:

n = 10
variable_names = ["list{}".format(i) for i in range(1, n + 1)]
exec('=[];'.join(variable_names) + '=[];')

现在,您将获得以下输出:

>>> list1
[]
>>> list2
[]