list1 = []
list2 = []
list3 = []
elecStorage = []
elective = ["i", "j", "k", "l"]
prereq = ["a", "b", "c", "d", "e", "f", "g", "h"]
dict1 = {
1: SEM1period1, 2: SEM1period2,
3: SEM1period3, 4: SEM1period3,
5: SEM1period5, 6: SEM1period6,
7: SEM1period7, 8: SEM1period8
}
someNumber = 1
for key, dlist in dict1.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:
continue
else:
list1.append(index)
someNumber += 1
break
注意:目前只有SEM1period1,SEM1period2和SEM1period3包含任何内容。 SEM1period1 包含
["a", "c", e", "g"]
SEM1period2 包含
["b", "d", "f", "h"]
和 SEM1period3 包含
["i", "j", "k", "l"]
当此代码运行时,应该保存
["a", "b", "i", "Free Period", "Free Period", "Free Period", "Free Period", "Free Period"]
进入 list1 。而是保存
["a", "b", "i", "j", "k", "l", "Free Period", "Free Period", "Free Period", "Free Period", "Free Period"]
这是为什么?有没有办法解决这个问题?
答案 0 :(得分:0)
看起来你的问题是一个错字:
dict1 = {
1: SEM1period1, 2: SEM1period2,
3: SEM1period3, 4: SEM1period3,
# ^
# should be 4!
另外:虽然您的代码似乎运行正常(从Python 3.3.4开始),但一般情况下我不相信字典中的项目顺序!您假设dict1.items()
返回句点1,句点2,句点3 ...但通常字典将以任意(即基本上随机)的顺序返回项目。