所以我试图找到列表中第三大的数字/字符串。这是我目前掌握的密码
def big(inputString):
big1 = inputString[0]
big2 = inputString[0]
big3 = inputString[0]
for char in inputString:
if char > big1:
big1, big2,big3 = char,big1,big2
elif big1 > char > big2 > big3:
big3 = char
print('largest',big1,'second largest',big2,third largest,big3)
当用户输入字符串列表时,输出应该如下所示:
^{pr2}$但我得到的结果是
^{3}$有人能告诉我我的代码哪里有错误吗
您可以使用内置的
sorted
对列表进行排序。^{{cda}可以接受您甚至可以向
sorted
传递一个字符串,它会将单个字符排序到一个列表中。在要获得列表中第三个、第二个或第n个最大的项,只需按降序对列表进行排序,然后调用该项,例如,
obj[0]
表示最大的项,obj[1]
表示第二个最大的项,等等让我们把它放在一起:
你不是在处理big2>;char>;big3的案子。在
另外,您也可以对字符串进行排序,然后按任意顺序打印字符,而不是这种手动蛮力方法。在
现在从尾部打印它们,或者如果您想反转s,从头部打印它们。在
@Chris_Rands建议的更好的答案是使用heapq.n最大. 在
^{pr2}$你可以简单地这样做:
这是一个测试实例:
^{pr2}$编辑1
另一个测试运行示例:
相关问题 更多 >
编程相关推荐