Python 3.x 创建从列表和字典中检索特定信息的函数
在for循环中,我需要使用list emner first对象在字典karakterer中搜索标记。 我需要帮助的for循环是#使用fag搜索下的循环。我希望它检索列表emner中的第一个对象,并从字典karakter返回结果。所以如果我写geografi,我希望它返回GEO200和GEO300Python 3.x 创建从列表和字典中检索特定信息的函数,python-3.x,Python 3.x,在for循环中,我需要使用list emner first对象在字典karakterer中搜索标记。 我需要帮助的for循环是#使用fag搜索下的循环。我希望它检索列表emner中的第一个对象,并从字典karakter返回结果。所以如果我写geografi,我希望它返回GEO200和GEO300 karakterer = {"INFO100":"A","INFO200":"B", "ECON110":"B", "ECON220":"A", "GEO200":"C", "GEO
karakterer = {"INFO100":"A","INFO200":"B", "ECON110":"B", "ECON220":"A",
"GEO200":"C", "GEO300":"E"}
emner = [("informasjonsvitenskap","INFO100"),("økonomi", "ECON110"),
("geografi", "GEO200"), ("informasjonsvitenskap","INFO200"),
("økonomi", "ECON220"),("geografi", "GEO300")]
def emneliste():
print("Velg fag og/eller emnenivå (<enter> for alle")
global emner
global karakterer
#this code works
fag = input('Fag: ')
nivå = input('Nivå: ')
if fag == '' and nivå == '':
for x in karakterer:
if x in karakterer:
print(x+' '+karakterer[x])
#search using fag
for x in emner:
rangefag = (int(re.search(r'\d+',x).group()))
fag = int(fag)
if fag == informasjonsvitenskap:
if rangefag in emner[0]:
print(x+' '+karakterer[x])
if fag == økonomi:
if rangefag in emner[0]:
print(x+' '+karakterer[x])
if fag == geografi:
if rangefag in emner[0]:
print(x+' '+karakterer[x])
#search using nivå
#this code works
for x in karakterer:
rangenivå = (int(re.search(r'\d+',x).group()))
nivå = int(nivå)
if nivå == 100:
if rangenivå in range(100,200):
if x in karakterer:
print(x+' '+karakterer[x])
elif nivå == 200:
if rangenivå in range(200,300):
if x in karakterer:
print(x+' '+karakterer[x])
elif nivå == 300:
if rangenivå in range(300,400):
if x in karakterer:
print(x+' '+karakterer[x])
karakterer={“INFO100”:“A”、“INFO200”:“B”、“ECON110”:“B”、“ECON220”:“A”,
“GEO200”:“C”,“GEO300”:“E”}
埃姆纳=[(“informasjonsvitenskap”、“INFO100”),(“økonomi”、“ECON110”),
(“geografi”、“GEO200”)、(“informasjonsvitenskap”、“Informa200”),
(økonomi”,“ECON220”),(“geografi”,“GEO300”)]
def emneliste():
印刷品(“Velg fag og/eller emnenivå(用于alle”)
全球埃姆纳
全球卡拉克泰尔酒店
#此代码有效
fag=输入('fag:')
nivå=输入('nivå:')
如果fag==''和nivå='':
对于karakterer中的x:
如果karakterer中有x:
打印(x+“”+karakterer[x])
#使用fag搜索
对于emner中的x:
rangefag=(int(重新搜索(r'\d+',x).group())
fag=int(fag)
如果fag==informasjonsvitenskap:
如果emner[0]中的rangefag:
打印(x+“”+karakterer[x])
如果fag==økonomi:
如果emner[0]中的rangefag:
打印(x+“”+karakterer[x])
如果fag==geografi:
如果emner[0]中的rangefag:
打印(x+“”+karakterer[x])
#使用nivå进行搜索
#此代码有效
对于karakterer中的x:
rangenivå=(int(re.search(r'\d+',x.group())
nivå=int(nivå)
如果nivå=100:
如果范围NIVå在范围内(100200):
如果karakterer中有x:
打印(x+“”+karakterer[x])
elif nivå=200:
如果rangenivå在范围内(200300):
如果karakterer中有x:
打印(x+“”+karakterer[x])
elif nivå=300:
如果rangenivå在范围内(300400):
如果karakterer中有x:
打印(x+“”+karakterer[x])
我不确定我是否理解range函数或regex搜索的所有用法,但这会从列表和字典中获取数据
fag = input('Fag: ')
values = [y if x == fag for x, y in emner]
for v in values:
print(karakterer[v])