提问人:Arjon Nill 提问时间:12/2/2022 最后编辑:azroArjon Nill 更新时间:12/2/2022 访问量:70
当列表的值为 10 时,基于列表第 2 个值的 Python 嵌套列表排序无法正常工作
python nested list sort based on 2nd value of the list is not working properly when it has value 10
问:
这是我在 Python 中解决 hackerrank 嵌套列表问题的代码 问题链接:https://www.hackerrank.com/challenges/nested-list/problem?isFullScreen=true
法典:
def sort(sub_li):
return(sorted(sub_li, key = lambda x: x[1]))
if __name__ == '__main__':
x=int(input ())
stu=[]
record=[]
for i in range(0,x):
stu.append(input())
stu.append(input())
record.append(stu)
stu = []
namelist = []
sortedrecord = sort(record)
print(sortedrecord)
value = 0
for i,j in sortedrecord:
if j>sortedrecord[0][1]:
value = j
break
for i,j in sortedrecord:
if j==value:
namelist.append(i)
namelist.sort()
for i in namelist:
print(i)
问题是排序功能在得分为 10 时无法正确排序
示例输入:
4
Shadab
8
Varun
8.9
Sarvesh
9.5
Harsh
10
输出:
[['Harsh', '10'], ['Shadab', '8'], ['Varun', '8.9'], ['Sarvesh', '9.5']]
Shadab
注意:我尝试了其他分类方式,但条件保持不变。
答:
0赞
azro
12/2/2022
#1
在词典编纂顺序中,come befor ,因为在之前10
8
1
8
您需要转换为才能使其按预期工作float
在输入端
stu.append(input()) stu.append(float(input()))
或使用时
def sort(sub_li): return sorted(sub_li, key=lambda x: float(x[1]))
评论