Python代码在需要时没有附加“空闲时间”
注:选修课和Prereq都包含字符串,比如Prereq中的微积分1,或者选修课中的天文学。dict2中的变量是包含类的列表,与函数先前调用的课堂名称相同 dict2.items中以for key,dlist开头的代码段应该做的是搜索第一个列表的元素,首先检查是否有列表,如果没有,然后在列表中追加空闲时间。然后,它应该检查prereq中是否存在列表中的任何元素,最后,如果没有,则将选修课中的内容附加到其中。因为如果它通过了第一个条件,可以安全地假设至少有一个选项。然后循环并对下一个元素列表执行相同的操作 问题是,除非所有列表都不包含任何内容,否则它不会附加“空闲时间”,我也不知道为什么Python代码在需要时没有附加“空闲时间”,python,list,dictionary,append,Python,List,Dictionary,Append,注:选修课和Prereq都包含字符串,比如Prereq中的微积分1,或者选修课中的天文学。dict2中的变量是包含类的列表,与函数先前调用的课堂名称相同 dict2.items中以for key,dlist开头的代码段应该做的是搜索第一个列表的元素,首先检查是否有列表,如果没有,然后在列表中追加空闲时间。然后,它应该检查prereq中是否存在列表中的任何元素,最后,如果没有,则将选修课中的内容附加到其中。因为如果它通过了第一个条件,可以安全地假设至少有一个选项。然后循环并对下一个元素列表执行相同
想法?在你的SEM*周期*中,可能会返回一个空列表,而不是一个都没有。检查空列表“[]”的正确方法是“if list1=[]”或“if lenlist1==0”
None是占位符,表示不存在的对象。[]是一个有效的列表对象,它只是在列表中没有条目。”如果not foo只是检查None,而不是空列表。您应该验证SEM2period变量的内容,没有这些变量很难诊断。我没有遵循你的逻辑,但这实际上只是你感兴趣的循环中的第一个块,是吗?您可能有一个包含空列表的列表,也许?这会打乱你的逻辑:
list1 = []
elective = []
prereq = []
someNumber = 1
dict2 = {
1: SEM2period1, 2: SEM2period2,
2: SEM2period3, 4: SEM2period4,
5: SEM2period5, 6: SEM2period6,
7: SEM2period7, 8: SEM2period8
}
for key, dlist in dict2.items():
if not dlist:
list1.append("Free Period")
someNumber += 1
continue
for item in dlist:
if item in list1:
continue
elif item in elective:
elecStorage.append(item)
elif item in prereq:
list1.append(item)
someNumber += 1
break
if someNumber > len(list1):
for index in elecStorage:
if index in list1:
break
else:
list1.append(index)
someNumber += 1
elecStorage[:] = []
break
给你
d2 = {1:['elec'], 2:[]}
for key, dlist in d2.items():
if not dlist:
print 'empty!'
else:
print dlist
d2 = {1:['elec'], 2:[[]]}
for key, dlist in d2.items():
if not dlist:
print 'empty!'
else:
print dlist
但是
给你
d2 = {1:['elec'], 2:[]}
for key, dlist in d2.items():
if not dlist:
print 'empty!'
else:
print dlist
d2 = {1:['elec'], 2:[[]]}
for key, dlist in d2.items():
if not dlist:
print 'empty!'
else:
print dlist
没有列表时,SEM2periodX具体是什么类型的对象。是不是一个都没有?应该是一个都没有,是的。你能证实那个SEM吗?句号?在至少有一个非空列表的情况下,是否真的没有,也不像是一个空列表?“[print x for x in dict2.values]”应该有助于调试。噢,见鬼,它返回为[],而不是无。但即使它返回为[],也不重要,对吗?