在python或空数组中创建多个列表

时间:2017-12-23 06:41:51

标签: python

您好我只是在寻找一次创建多个列表的方法。我的意思是。

day1 = []
day2 = []
up to 7 days....
day7 = []

而不是一直复制和粘贴,使我的代码看起来不专业,看起来不太好。我想创建一个自动创建这些列表的循环。

4 个答案:

答案 0 :(得分:3)

以下是几个选项:

1。基本列表理解:

seven_lists = [[] for i in range(7)]

它给出了七个列表的嵌套列表:

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

2. (day, [])元组列表:

days = [("day " + str(i+1), []) for i in range(7)]

给出了:

[('day 1', []), ('day 2', []), ('day 3', []), ('day 4', []), ('day 5', []), ('day 6', []), ('day 7', [])]

3. 天词典:

days = {"day " + str(i+1) : [] for i in range(7)}

给出了:

{'day 1': [], 'day 2': [], 'day 3': [], 'day 4': [], 'day 5': [], 'day 6': [], 'day 7': []}

然后您可以像这样访问/更新每天/多天:

>>> days['day 1']
[]
>>> days['day 1'].append(1)
>>> days['day 1']
[1]
>>> days
{'day 1': [1], 'day 2': [], 'day 3': [], 'day 4': [], 'day 5': [], 'day 6': [], 'day 7': []}
>>> days.update({'day 2': [1, 2, 3]})
>>> days
{'day 1': [1], 'day 2': [1, 2, 3], 'day 3': [], 'day 4': [], 'day 5': [], 'day 6': [], 'day 7': []}

答案 1 :(得分:1)

你可以使用dict

dct = {}
for i in range(1,8):
   dct["day"+str(i)] = []

或dict comprehensions

dct = { 'day'+str(i):[] for i in range(1,8) }

输出:

{'day6': [], 'day7': [], 'day4': [], 'day5': [], 'day2': [], 'day3': [], 'day1': []}

答案 2 :(得分:1)

我能想到的最短路是这个。

day1, day2, day3, day4, day5, day6, day7 = [], [], [], [], [], [], []

答案 3 :(得分:1)

有时值得的奇怪方法是

from collections import defaultdict
days = defaultdict(list)
print(days['day1']) #prints [], 

这样做只要您保持一致,就可以使用任何您喜欢的星期几键。像

days['Monday']

或使用数字键使其看起来像一个数组。