定义大量列表的便捷方法?

时间:2019-04-03 10:36:03

标签: python python-3.x

对于我当前的代码,我需要定义很多列表并将它们返回到字典中。

仅此一项就需要约100行代码。它可以工作,但是我很好奇是否有更好的方式编写这段代码

list1 = []
list2 = []
list3 = []
.
.
.

return {"list1": list1,
"list2": list2,
"list3": list3,
...
}

我首先定义约40个列表,将它们附加数据,并在经过一些额外的计算后在字典中返回约60-70个列表(后来我用这些数据创建数据框)。

这使代码真的很庞大,有没有办法“美化”此代码?

3 个答案:

答案 0 :(得分:1)

根据执行此操作的原因,您也许可以使用collections中一个非常有用的类,称为defaultdict。该对象的操作类似于dict,但在调用不存在的键时也具有默认返回值。

这意味着您可以将代码替换为:

from collections import defaultdict

data = defaultdict(list)

这意味着只要您访问一个值,它就会创建一个空列表(如果以前不存在)。这样一来,您就可以像以前一样添加到列表中:

data['list1'].append('your_value_here')

答案 1 :(得分:0)

这肯定是您的代码有些误解。如果您重复执行多次操作,那么总是可能会出现for循环:

result = dict()
for k in range(1, 41):
    result["list"+str(k)] = []

或者作为单线:

{"list"+str(k):[] for k in range(1, 41)}

然后,您需要弄清楚列表应该包含的内容..因为我不知道为什么要创建所有这些空列表。

答案 2 :(得分:0)

d = {}
for i in range(40):
    d["list"+str(i)] = []