您好我只是在寻找一次创建多个列表的方法。我的意思是。
day1 = []
day2 = []
up to 7 days....
day7 = []
而不是一直复制和粘贴,使我的代码看起来不专业,看起来不太好。我想创建一个自动创建这些列表的循环。
答案 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']
或使用数字键使其看起来像一个数组。