【问题标题】:Taking multiple values against each key using for loop [closed]使用 for 循环对每个键取多个值 [关闭]
【发布时间】:2021-08-11 20:06:50
【问题描述】:
student_marks = {'Raj':[20,30,40,48], 'Raja':[25,35,46,22]}

我想编写一个代码,使用户能够以上述形式进行输入。我已经看到代码 sn-ps 用于针对每个键获取一个值,但找不到将列表作为值获取的代码。

【问题讨论】:

  • 好的。我会做的
  • “我想写一个代码”。但是您要求我们为您编写代码?
  • @BuddyBob,是的,我想要,但我无法做到,因此寻求帮助。好的,现在??
  • 别担心@dubey,我正在努力。但是请告诉我你想输入多少个名字
  • 姓名的数量也将是用户输入@RishabhSemwal,感谢 Rishabh 的帮助

标签: python list dictionary for-loop


【解决方案1】:

我猜你想要这样的东西

dic = {}
while True:
    student = input("enter student name : ")
    if student:
        mark = input("enter student mark split by ',' : ").split(",")
        dic.update({str(student): mark})
    else:
        break

print(dic)

【讨论】:

  • while true 将代码带入无限循环,所以我尝试输入,运行 for 循环,然后我复制了您的其余代码。很好用,谢谢大佬!!
【解决方案2】:
i = 0
marks_list = []
name = list(map(str, input("Enter names: ").split()))
while i < len(name):
    marks = list(map(int, input("Enter " + name[i] + " marks: ").split()))
    marks_list.append(marks)
    i += 1

student_marks = {name[i]: marks_list[i] for i in range(len(name))}

print(student_marks)

这是有效的答案。 像这样输入。

Enter names: Raj Raja
Enter Raj marks: 20 30 40 48
Enter Raja marks: 25 35 46 22

输出:

{'Raj': [20, 30, 40, 48], 'Raja': [25, 35, 46, 22]}

【讨论】:

  • 我得到一个类型错误:它说列表对象不可调用...... name =list(map.....)
  • 你输入了什么
  • 在我的电脑上运行良好
  • 确保名称输入在一行中,并在它们之间留有空格。就像我在回答中所做的那样。请阅读完整答案
  • 对不起,我在我的一个代码中将列表定义为变量,这可能让事情出错了。当我在新笔记本中尝试时,它工作正常。谢谢大佬!!
猜你喜欢
  • 2013-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多