python - TypeError:“浮动”对象在嵌套列表中不可迭代
问题描述
TypeError: 'float' object is not iterable.
在我的代码中,我使用了嵌套列表理解,分数是浮点值。
问题:给定 N 个学生的物理课中每个学生的姓名和成绩,将它们存储在嵌套列表中,并打印任何成绩第二低的学生的姓名。
if __name__ == '__main__':
for _ in range(int(input())):
name = input()
score = float(input())
l=[[x,y] for x in name for y in score if (max(score)-y) > 0]
max=l[0]
for mark in l:
if mark[1]>max[1]:
max=mark
m=[x[0] for x in l if (max-x[1])==0]
print(m.sort())
解决方案
所以,正如我在评论中所说,但更详细。您需要将学生信息保存在列表中,然后对成绩进行排序以找到第二低的成绩,然后再次循环它们以打印第二低的成绩。
我也强烈建议不要将max
其用作变量名,因为它会替换内置函数。
students = []
for i in range(1, int(input("How many students? "))+1):
name = input(f"What is student {i}'s name? ")
score = float(input(f"What is student {i}'s grade? "))
students.append([name, score])
second_lowest_grade = sorted({s[1] for s in students})[1]
for student in students:
if student[1] == second_lowest_grade:
print(*student, sep=': ')
推荐阅读
- accessibility - WCAG 2.1 AA 合规性和用户生成的内容 - 您如何处理不受您控制的内容?
- python - 更改 python 代码以飞溅图像
- html - 无法在 AngularJs 中的另一个自定义指令中调用自定义指令
- amazon-web-services - Jmeter Cookie 管理器对 AWS 粘性会话的影响
- c++ - 对象和多线程的多个实例的线程安全
- azure - 是否可以在 Azure DevOps 中为我已经部署在其他地方的网站运行 selenium webdriver 自动化测试?
- php - 输入密码:mysqldump:出现错误:1045:尝试连接时用户'XXX'@'localhost'的访问被拒绝(使用密码:NO)
- javascript - 有没有办法(以编程方式)区分箭头函数和常规函数?
- angular - 使用 amchart 4 和 angular 导出 12 小时时间格式(CSV、XLSX)
- amazon-web-services - 一个账户的 Ec2 实例可以访问另一个账户的 ec2 实例吗?