Python日历类型错误

Python日历类型错误,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我正在尝试创建一个日历,并为其中一个工作日安排一个时间段 timetable = [[""] * 24 for day in range(7)] timetable[0][15] = "meeting with Jane" # first let's define weekday names WEEKDAYS = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday') # now we

我正在尝试创建一个日历,并为其中一个工作日安排一个时间段

timetable = [[""] * 24 for day in range(7)]

timetable[0][15] = "meeting with Jane"

# first let's define weekday names
WEEKDAYS = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 
'Saturday', 'Sunday')

# now we iterate over each day in the timetable

for day in timetable:

# and over each timeslot in each day

day_name = WEEKDAYS[day]

  for i, event in enumerate(day):
      if event: # if the slot is not an empty string
        print("%s at %02d:00 -- %s" % (day_name, i, event))
我得到一个错误:

day_name = WEEKDAYS[day]
TypeError: tuple indices must be integers, not list
我知道“day”被作为列表传递给tuple,这导致了这个错误,但是我应该对代码做什么修改来解决这个问题呢

使用更多枚举

使用更多枚举

你为什么打电话给enumerateday,它列举的两个值是什么?为了便于阅读,我可能会将I改为小时。这样做是为了成对地获得索引和值

您可以对时间表执行相同的操作:

for day, agenda in enumerate(timetable):
    day_name = WEEKDAYS[day]
    for hour, event in enumerate(agenda):
        …
你为什么打电话给enumerateday,它列举的两个值是什么?为了便于阅读,我可能会将I改为小时。这样做是为了成对地获得索引和值

您可以对时间表执行相同的操作:

for day, agenda in enumerate(timetable):
    day_name = WEEKDAYS[day]
    for hour, event in enumerate(agenda):
        …

想想timeablehint中的实际内容:这是一个列表列表。即使您确实遍历了每个嵌套列表,您仍然会遇到问题。字符串不能是元组索引。我建议花点时间重新思考代码的逻辑。如果您遇到问题,请仔细阅读,确认您是正确的。这是一个列表。我是python新手,所以对很多事情都不太了解。我认为在外部for循环中应该有另一个变量,它可以作为元组的索引传递,但我不确定如何做。请参阅我上述评论的最新编辑。想想timeablehint中的实际内容。提示:这是一个列表列表。即使您确实遍历了每个嵌套列表,您仍然会遇到问题。字符串不能是元组索引。我建议花点时间重新思考代码的逻辑。如果您遇到问题,请仔细阅读,确认您是正确的。这是一个列表。我是python新手,所以对很多事情都不太了解。我认为在外部for循环中应该有另一个变量,它可以作为元组的索引传递,但我不确定如何做。请参阅我上面评论的最新编辑。