str 和 int 实例之间不支持“<”

'<' not supported between instances of str and int

提问人:dubey 提问时间:5/21/2021 最后编辑:Glycerinedubey 更新时间:5/22/2021 访问量:668

问:

我试图找出一群人中最低的分数。

我的代码:

list = [['Radhe',99],['Bajrangi',98],['Ram',95],['Shyam',94],['Bharat',89]]
min_score = list[0][1]
for x in list:
    for y in x:
        if (y < min_score):
            min_score=y
print(min_score)

我应该做些什么不同?

python 字符串 整数 最小 嵌套列表

评论

1赞 Glycerine 5/21/2021
您的项目是包含两个整数的列表,即 a 和 .生成每个 if 语句的 str,然后生成 int。因此,您的第一个测试是检查 .xstringintfor y in x"Radhe"99
2赞 Rakesh 5/21/2021
min(your_lst, key=lambda x: x[1])?

答:

1赞 chepner 5/21/2021 #1

正在迭代 的每个元素,而你实际上只关心:xx[1]

for x in list:
    if x[1] < min_score:
        min_score = x[1]

您还可以解压缩每个子列表,以便为值提供更易于使用的名称:

for name, score in list:
    if score < min_score:
        min_score = score

评论

0赞 dubey 5/21/2021
是的,我现在明白了,谢谢!!
0赞 dubey 5/21/2021
有一个新的故障。尽管部署了修改,但我无法比较 float 和 str。代码如下: n = int(input()) list = [] for i in range(n+1): name = input() score = float(input()) list.append([name,score]) print(list) min_scores = list[0][1] for x in list: if (x[1]<min): min_scores = x[1] list.remove(min) print(list)
1赞 Tom McLean 5/21/2021 #2
  1. list是 Python 中的内置数据类型,因此您应该将变量重命名为其他名称,例如l

  2. 在第一个 for 循环中,您将 x 分配给 list 的第一个元素,即 。在第二个 for 循环中,您将遍历 x 中的每个项目,其中第一个是,因此您将 int 与字符串进行比较。for x in list['Radhe', 99]'Radhe'

考虑到这一点,您可以将代码重写为:

l = [['Radhe',99],['Bajrangi',98],['Ram',95],['Shyam',94],['Bharat',89]]
min_score = l[0][1]
for x in l:
    if (x[1] < min_score):
        min_score=x[1]
print(min_score)

其输出:

89

或者,您可以使用列表推导在一行中完成所有操作:

min_score = min([x[1] for x in l])
0赞 Deepak 5/21/2021 #3

试试这个

given_list = [['Radhe',99],['Bajrangi',98],['Ram',95],['Shyam',94],['Bharat',89]]
print(min(given_list, key=lambda x: x[1])[1])

评论

0赞 dubey 5/22/2021
有一个新的故障。尽管部署了修改,但我无法比较 float 和 str。代码如下: n = int(input()) list = [] for i in range(n+1): name = input() score = float(input()) list.append([name,score]) print(list) min_scores = list[0][1] for x in list: if (x[1]<min): min_scores = x[1] list.remove(min) print(list)
0赞 Deepak 5/22/2021
@dubey ..请将此添加到原始问题中,并在堆栈溢出中提出一个单独的问题...阅读注释部分中的代码片段并不难