<p>因为<code>sub</code>对象是列表类型,所以在结果中它是列表。可以将子列表集中为字符串,或者只使用<code>w</code>对象,然后附加到上/下列表。你知道吗</p>
<pre><code>classes = ["MATH 150", "PSYCH 111", "PSYCH 313", "PSYCH 412", "MATH 300", "MATH 404", "MATH 206", "ENG 100", "ENG 103", "ENG 201", "PSYCH 508", "ENG 220", "ENG 125", "ENG 124"]
upper = [] #empty list
lower = [] #empty list
for w in classes:
sub = w.split()
if "MATH" in sub and int(sub[1]) >= 300:
upper.append(" ".join(sub))
elif "ENG" in sub and int(sub[1]) >= 200:
upper.append(" ".join(sub))
elif "PSYCH" in sub and int(sub[1]) >= 400:
upper.append(" ".join(sub))
else:
lower.append(" ".join(sub))
print("Upper Level Courses:", upper)
</code></pre>
<p>您还可以使用<code>List Comprehensions</code>重写代码,如下所示:</p>
<pre><code>classes = ["MATH 150", "PSYCH 111", "PSYCH 313", "PSYCH 412", "MATH 300", "MATH 404", "MATH 206", "ENG 100", "ENG 103", "ENG 201", "PSYCH 508", "ENG 220", "ENG 125", "ENG 124"]
upper = [c for c in classes if ("MATH" in c and int(c.split()[1])>=300) or ("ENG" in c and int(c.split()[1])>=200) or ("PSYCH" in c and int(c.split()[1])>=400) ]
lower = [c for c in classes if c not in upper]
</code></pre>
<p>希望有帮助。你知道吗</p>