【发布时间】:2019-08-13 09:14:15
【问题描述】:
我一直试图在网上找到答案,但没有任何结果。 我正在尝试创建一个系统,用户可以在其中搜索列表并返回他们的科目和成绩,并使用过滤器仅显示一个领域的科目(例如信息科学)并过滤科目的级别(如果它是100lvl、200lvl 或 300lvl)我尝试过使用 Sub_string 但不能正常工作。 所以我到目前为止的视图代码(带子字符串)是这样的:
def finn():
global Karakterer
global Emner
print("Velg fag og/eller emnenivå (<enter> for alle)")
Fag = input("-Fag: ")
for sub_string in Emner:
if str(Fag) in sub_string:
print(*([sub_string] + ([Karakterer[sub_string]] if sub_string in Karakterer else [])))
这些是我的列表(转换为字典才能使用)
Emner = ["INFO100","INFO104","INFO110","INFO150","INFO125", "RELV102"]
FagKoder = [["Informasjonsvitenskap","INF"],["Kognitiv vitenskap","Kog"],
["Religionsvitenskap","REL"],["DigitalKultur","DIK"],["Økonomi","ECO"]]
Karakterer=[["INFO100","C"],["INFO104","B"],["INFO110","E"], ["RELV102","A"]]
Karakterer=dict(Karakterer)
FagKoder = dict(FagKoder)
现在是这样打印出来的,也是我需要的打印方式:
我的问题是 Sub_string dosent 可以正常工作以满足我的需要,因为我需要能够允许用户选择一个区域(例如 INFO)和一个特定级别(级别 200),然后打印出所有200 级的 INFO 科目。 但是 sub_string 只检查字符串是否包含在列表中并打印出来。 有没有人有更好的解决方案? 希望这是有道理的 谢谢!
【问题讨论】:
-
请不要将预期的输出作为图像发布。图片不能被复制/粘贴、搜索、蚀刻。
标签: python dictionary search filter