我想用词典把这些不及格人的名字成绩弄出来,但是不知道为啥不能运行哎?

students = ({"赵,60"},{"钱,34"},{"孙,89"},{"李,56"},{"周,90"})
for student in students:
    if (students [1] < 60):
       name = students [0]
       score = students [1]
print("姓名:{}".format(name),"成绩:{}".format(score))
阅读 3.4k
4 个回答

不太清楚你的原数据到底是什么格式

是数组就是这样

students = [["赵",60],["钱",34],["孙",89],["李",56],["周",90]]
for student in students:
    if (student[1] < 60):
        name = student[0]
        score = student[1]
print("姓名:{}".format(name),"成绩:{}".format(score))

这是改了你原来的代码让他运行,但是这样只能打印最后一个不及格的,要打印所有的可以这样

students = [["赵",60],["钱",34],["孙",89],["李",56],["周",90]]
for student in students:
    if (student[1] < 60):
        print("姓名:{}".format(student[0]),"成绩:{}".format(student[1]))

根本不是词典模式
这种格式才是词典

students = {"赵":60,"钱":34,"孙":89,"李":56,"周":90}
新手上路,请多包涵

数据类型定义错了,集合元素应该是不可变类型,你放个列表进去肯定不行啊

新手上路,请多包涵

这个能完美的回答上述问题,这道题主要用到的是集合和切片的知识点

# 将不及格人的名字和成绩弄出来
students = ({"赵,60"},{"钱,34"},{"孙,89"},{"李,56"},{"周,90"})
# 将列表中的每一个集合取出
for student in students:
    # 将集合中的元素取出
    for i in student:
        if int(i[2:]) < 60:
            #print(int(i[2]))
            print(student)

结果如下

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题