【问题标题】:How to return value that is in a relation of specific index. If value came from input如何返回与特定索引相关的值。如果值来自输入
【发布时间】:2025-12-04 02:35:02
【问题描述】:

假设输入 fag 是 list(FagKode) 中的 informasjonsvitenskap,如果这是真的,我希望它打印 karak 中具有代码 INFO 的值,例如 INFO100、INFO132 和 INFO233。如果输入 fag 是 økonomi,我希望它打印 karak 中的值,代码为 ECON。我还有一个函数,def legg_til()。那将允许我在列表“emner”中添加一个元素。那么问题将是。如何让它找到与输入 fag 相关的值并打印特定值。 :/

print('\nVelkommen til karakterprogrammet Infinitux\n')
print('----------------------------')

print('1: Emneliste','2: Legg til emne','3: Sett karakter','4: Karaktersnitt','5: Avslutt',sep='\n')
print('----------------------------')

emner = ['INFO100','INFO132','INFO233']
FagKode = [['informasjonsvitenskap','INFO'],['økonomi','ECON']]
karak = [['INFO100','C'],['INFO132','B'],['INFO233','C'],['ECON218','A']]


def start():
    global meny
    global fag
    meny = int(input('Tast inn ønsket valg (press 0 for meny): '))

    if meny == 1:
      valg_fag = input('Press Enter for å velge fag/emner (Skriv "alle" for å vise alle fag/emner)\n: ')

    if meny == 1 and valg_fag == 'alle':
      for i in karak:
        print(*i)

    elif meny == 1 and valg_fag == '':
      fag = input('- Fag: ')
      emnenivå = int(input('- Nivå: '))
      try:
        if fag in FagKode[0] and emnenivå in range(1,1000):
          ???????
          ???????
        else:
          print('Du har gjort noe feil!')
      except ValueError:
          print('NEI')


def legg_til():
    global meny
    global fag
    if meny == 2:
      add = input('Nytt emne:  ')
      emner.append(add.upper())


def karakter(): # Sletter/Setter ny karakter
    global meny
    if meny == 3:
      valg_emne = input('Emne: ')
      slett = input('Karakter (<enter> for å slette): '+karak==valg_emne)


    if meny == 3 and valg_emne in emner and slett == '':
      for i in range(len(karak)):
        if karak[i][0] == valg_emne:
          del karak[i][1]
        start()

    if meny == 3 and valg_emne in emner:
      pass

    if meny == 3 and valg_emne in emner and slett == 'HEI':
      for i in range(len(karak)):
        if karak[i][0] == valg_emne:
          print(karak[i][1])

def snitt():
  pass


def programslutt():
  global meny
  if meny == 5:
    print('Takk for nå, velkommen igjen!')
  else:
    ('Feil verdi')


start()
legg_til()
karakter()
programslutt()

提前感谢您的意见:)

【问题讨论】:

  • 为什么列表中有值。为什么不使用字典来保存键值对。对于变量 FagKodekarak
  • 我还没有翻过字典,我会在完成这个任务后做。我知道如果我使用字典会更好。
  • 我想要返回值的列表写错了,我想要返回值的列表是karak,而不是emner
  • 有更有效的方法来检查一个数字是否在一个范围内......你应该解释你要解决的确切问题是什么
  • karak== 是干什么用的?在下面的开关盒中:if fag in FagKode[0] and emnenivå in range(1,1000):

标签: python python-3.x


【解决方案1】:

试试这个。 将变量 FagKodekarak 设为字典。

并尝试获取如下值。

return karak.get(FagKode.get(input(fag)))

或此列表。

for i, j in FagKode:
    if i==input(fag):
        for k, l in karak:
            if k==j:
                return l
return "Not Found"

【讨论】:

  • Sukumar Rdjf,我更喜欢字典,但这次我必须使用列表,因为这是学校的作业。 ://
  • 现在它只给我我输入的值。
  • 你为什么不把 ldata 和逻辑贴在你试图检查元素的地方。与问题逻辑无关的数据太多。
  • 什么意思?我不明白
  • Sukumar Rdjf。假设输入 fag 是 list(FagKode) 中的 infomasjonsvitenskap,如果这是真的,我希望它打印 karak 中具有代码 INFO 的值,例如 INFO100、INFO132 和 INFO233。如果输入 fag 是 økonomi,我希望它打印 karak 中的值,代码为 ECON。我还有一个函数,def legg_til()。那将允许我在列表“emner”中添加一个元素。那么问题将是。如何让它找到与输入 fag 相关的值并将具体值返回给我。 ://