字典问题,请各位兄台伸出援手

img


一道大学python基础题要求定义函数,涉及到字典的知识,求解

img

l1=eval(input())
l2=eval(input())
l=zip(l1,l2)
x=input()
for i in l:
    if x in i:
        print(i[1])
def creat_dict(lst1, lst2):
    dct = {}
    for x,y in zip(lst1, lst2):
        dct[x] = y
    return dct

def find_score(dct, name):
    if name in dct.keys():
        print(dct[name])
    else:
        print('No student!!!')
def main():
    lst1 = eval(input())
    lst2 = eval(input())
    #print(lst1, lst2)
    dct = creat_dict(lst1, lst2)
    name = input()  
    find_score(dct, name)
main()

望采纳,谢谢!

img

def creat_dict(lst1,lst2):
  dic=dict(zip(lst1,lst2))
  return dic
dic = creat_dict(lst1,lst2)
def find_score(dic,name):
  try:
    dic[name]
    print(dic[name])
  except:
    print("No student!!")
  
def main():
  lst1=eval(input(''))
  lst2=eval(input(''))
  name = input('')
  dic = creat_dict(lst1,lst2)
  find_score(dic,name)
main()

从键盘上输入列表时,各元素要用空格分隔,并且注意人数和分数个数得相同

def creat_dict(lst1,lst2):
  return dict(zip(lst1, lst2))
  
def find_score(dct,name):
  if name in dct:
    print(dct[name])
  else:
    print('No student!!')
 
name = input('请输入学生列表:').split()
score = list(map(int,(input('请输入分数列表:').split())))
 
dct = creat_dict(name,score)

name = input('请输入名字:')
 
find_score(dct, name)

直接给变量的;

def creat_dict(lst1,lst2):
  return dict(zip(lst1, lst2))
  
def find_score(dct,name):
  if name in dct:
    print(dct[name])
  else:
    print('No student!!')
 
name = ["Emma","Mike","Alice"," Tony","Olivia","Allen","Make"]
score = [88,88,87,75,69,89,100]
 
dct = creat_dict(name,score)

name = input('请输入名字:')
 
find_score(dct, name)
def creat_dict(lst1,lst2):
    dic=dict(zip(lst1,lst2))
    return dic
def find_score(dct,name):
    if dct.get(name):
        print(dct[name])
    else:
        print("No student!!")

lst1 = eval(input())
lst2 = eval(input())
name = input()
dct = creat_dict(lst1,lst2)
find_score(dct, name)

结果(前三行为输入,最后一行为输出):

["stu1","stu2","stu3","stu4","stu5","stu6","stu7","stu8"]
[88,88,87,75,69,77,89,100]                               
stu2
88