我是一个新手,所以如果我忽略了一些基本的东西,请耐心等待,但我正在尝试为我的朋友的瑜伽工作室列出瑜伽课程,该概念上应该看起来像这个:创建嵌套列表的问题
Monday
Dynamic Yoga with Mary 6pm
Soft yoga with Susie 8pm
Wednesday
Hatha yoga with Bob 5pm
Hot yoga with Alice 7pm
所以我想取得班的名单,然后看看周一是否有瑜伽课。如果有的话,我会在星期一和星期一的所有课程中添加“星期一”,以此类推。
问题:
到目前为止我的代码追加全部那里有瑜伽班的日子,但随后将所有从整周的班每天,当他们应该只添加对应于每个类天。
I.e.当它应该是:
Monday_list = [Monday, [[Class1Monday],[Class2Monday]]
它来代替:
Monday_list [Monday, [[CLass1Monday],[CLass2Monday],[CLass1Tuesday],[CLass2Tuesday]]]
这是我的代码(这是对谷歌应用程序引擎,它可以在代码解释一些怪异...):
def get_classes():
weekly_classes = []
d = {1: 'Monday',
2: 'Tuesday',
3: 'Wednesday',
4: 'Thursday',
5: 'Friday',
6: 'Saturday',
7: 'Sunday'}
yoga_classes = Schema.all() #appengine DB request
if yoga_classes:
#list that will be sent to template
for n in range(1,8):
day_classes = []
for e in yoga_classes:
if e.weekday == n:
day = d[n]
class_output = [str(e.name),
str(e.teacher),
str(e.description)
]
day_classes.append(class_output)
day_output = [day,day_classes]
weekly_classes.append(day_output)
self.response.out.write(weekly_classes)
这可以写得更简洁,但不应该'day_classes.append(class_output)'有更多级别的缩进吗? – 2013-02-26 23:07:44
@StevenRumbalski谢谢!没有完全解决整个问题,但删除了一些多余的列表条目。小心给我提示如何使它更简洁。这是我自己做的第一个独立项目,因为我做了Udacity的在线课程CS253,所以我很高兴指出我应该朝哪个方向发展:) – 2013-02-26 23:15:05
@StevenRumbalski实际上,那个缩进解决了所有问题,除了一个烦人事情。我的数据库表格现在由星期一至星期四的瑜伽课程组成。然而,该列表在最后输出['Thursday',[]],['Thursday',[]],['Thursday',[]]]。我想因为范围(1,8)使其追加,直到迭代完成。如果当天没有课程,我怎么能使它不会被追加? – 2013-02-26 23:34:34