我的团队成员给了我一本字典,它存储了菜单在特定日期和时间的数据,如下所示:
storeMenu = {}
# menu[id] MenuName,storeID,[days],[time available],[meals available]
storeMenu[1] = ['Mon Tues Special', 1, [0, 1], [[time(9, 0), time(10, 59)]], [1, 2]]
storeMenu[2] = ['Thurs Fri Menu', 1, [3, 4], [[time(9, 0), time(10, 59)]], [5, 4]]
storeMenu[3] = ['Wednesday Menu', 1, [2], [[time(9, 0), time(11, 00)], [time(14, 00), time(19, 00)]], [1, 2]]
storeMenu[4] = ['Wednesday Lunch Menu', 1, [2], [[time(11, 0), time(14, 00)]], [1, 2, 4]]
storeMenu[5] = ['Breakfeast Menu', 2, [0, 1, 2, 3, 4], [[time(9, 0), time(10, 59)]], [6, 7, 8]]
storeMenu[6] = ['Lunch and Dinner Menu', 2, [0, 1, 2, 3, 4], [[time(11, 00), time(20, 00)]], [9]]
如果我选择的时间介于开始时间和结束时间之间,我想返回菜单[x]。我编写了一个函数来检索它的开始时间、结束时间和一个要检查的函数
def getStartTime(storeMenu):
menu = []
for x in storeMenu:
if(len(storeMenu[x][3]) == 1):
result = [x, storeMenu[x][3][0][0]]
menu.append(result)
elif(len(storeMenu[x][3]) > 1):
result1 = [x, storeMenu[x][3][0][0]]
result2 = [x, storeMenu[x][3][1][0]]
result = result1+result2
menu.append(result)
return menu
print(getStartTime(storeMenuFile))
def getEndTime(storeMenu):
menu = []
for x in storeMenu:
if(len(storeMenu[x][3]) == 1):
result = [x, storeMenu[x][3][0][1]]
menu.append(result)
elif(len(storeMenu[x][3]) > 1):
result1 = [x, storeMenu[x][3][0][1]]
result2 = [x, storeMenu[x][3][1][1]]
result = result1+result2
menu.append(result)
return menu
print(getEndTime(storeMenuFile))
def menuAtSelectedTime(storeMenu, sTime, selTime, eTime):
menu = []
for menuID in storeMenu:
if(menuID == sTime[menuID-1][0] & menuID == eTime[menuID-1][0]):
startTime = sTime[menuID-1][1]
endTime = eTime[menuID-1][1]
if(startTime < selTime < endTime):
result = [menuID, storeMenu[menuID]]
menu.append(result)
return menu
sTime = getStartTime(storeMenuFile)
eTime = getEndTime(storeMenuFile)
selTime = time(15, 00)
print(menuAtSelectedTime(storeMenuFile, sTime, selTime, eTime))
但是,它只打印菜单[6],而不打印菜单[3]。我相信我的if语句中有错误,但我似乎不明白。任何帮助都将不胜感激。谢谢你
可以使用列表解释快速遍历列表并返回与查询匹配的所有项。列表解释是这样工作的[(要返回的项)对于(列表)if(布尔语句)中的(值)]。在本例中,我返回所有具有匹配条件的索引
最后,使用另一个列表解释返回这些索引处的所有菜单
相关问题 更多 >
编程相关推荐