リストやディクショナリに7日間保存できますが、一般的なOOPでは、便利なアクセサを提供するコンテナクラスを定義することができます。大文字小文字を区別しない名前または数字(日曜日が0であると仮定)を指定して、曜日を指定することができます。
import datetime
class Day:
def __init__(self, name, todo_list):
self.name = name
self.todo_list = todo_list
class Week:
weekday_names = ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday',
'Friday')
weekday_index = {name.lower():idx
for idx,name in enumerate(weekday_names)}
weekday_index.update({idx:idx for idx in range(7)})
def __init__(self):
self.days = [Day(name, []) for name in self.weekday_names]
def __getitem__(self, name_or_ord):
if isinstance(name_or_ord, str):
name_or_ord = name_or_ord.lower()
return self.days[self.weekday_index[name_or_ord]]
def __setitem__(self, name, day):
raise ValueError("Cannot set days in week")
week = Week()
week['Sunday'].todo_list.append('dinner with parents')
week['Monday'].todo_list.append('laundry')
print("Monday's tasks:",
', '.join(week['monday'].todo_list))
print("Today's tasks:",
', '.join(week[datetime.date.today().weekday()].todo_list))
実行中のエラーはありますか?また、2番目の引数(リスト)を括弧で囲む必要はありません。 – denvaar
@leaf:いいえ、彼はいません。 '(MonList = []、)'は 'タプル 'になります。ここでかっこはちょうど役に立たない。 –
末尾のカンマは、項目が1つしかない場合のタプルを示します。 – denvaar