Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python I';我试图简化我的代码,但答案是错误的_Python - Fatal编程技术网

Python I';我试图简化我的代码,但答案是错误的

Python I';我试图简化我的代码,但答案是错误的,python,Python,这是我的代码(没错): 但我想这样做(蟒蛇): 所以。。执行此操作时,我的代码只需打印: 打印(l.删除(最大(l))) 没有 有什么问题吗?我只想简化我的代码 任务:我有一个列表,我想打印第二个最高分。看一下列表。list.remove方法是一种就地修改列表的方法。也就是说,它修改了您调用它的列表,而不是返回一个包含您想要的更改的新列表 由于此函数不返回任何内容,因此打印l.remove()将显示“无”。要在删除元素的情况下打印列表,您必须坚持使用原始代码。查看列表。list.remove方法

这是我的代码(没错):

但我想这样做(蟒蛇):

所以。。执行此操作时,我的代码只需打印:

打印(l.删除(最大(l)))

没有

有什么问题吗?我只想简化我的代码

任务:我有一个列表,我想打印第二个最高分。

看一下列表。
list.remove
方法是一种就地修改列表的方法。也就是说,它修改了您调用它的列表,而不是返回一个包含您想要的更改的新列表

由于此函数不返回任何内容,因此打印
l.remove()
将显示“无”。要在删除元素的情况下打印列表,您必须坚持使用原始代码。

查看列表。
list.remove
方法是一种就地修改列表的方法。也就是说,它修改了您调用它的列表,而不是返回一个包含您想要的更改的新列表


由于此函数不返回任何内容,因此打印
l.remove()
将显示“无”。要在删除元素的情况下打印列表,必须使用原始代码。

使用
set()
将地图对象转换为集合,使用
sorted()
转换为排序列表,并使用
[-2]
获取最后一个元素:

print(sorted(set(arr))[-2])


在我看来,这比删除max然后打印新的max更具python风格,因为它更清晰,并且只需较少的步骤即可实现。

使用
set()
将地图对象转换为集合,使用
sorted()
转换为排序列表,并使用
[-2]
获取最后一个元素:

print(sorted(set(arr))[-2])

在我看来,这比删除max然后打印新的max更具python风格,因为它更清晰,而且只需较少的步骤即可实现。

您应该使用a而不是排序。您可以在O(n)时间内构建一个堆 并在O(n)时间内返回
k
第四大项(对于任何常数
k
);排序需要O(n lgn)时间

你应该使用a而不是排序。您可以在O(n)时间内构建一个堆 并在O(n)时间内返回
k
第四大项(对于任何常数
k
);排序需要O(n lgn)时间



您正在打印
list.remove()
的返回值,它总是
None
。仅供参考,
set
通常是无序的,因此在将其转换为
set
之前排序
arr
是相当多余的。想想看:
l.remove(max(l))
“知道吗?”是否返回
l
中的下一个最大值?或者您甚至可能期望它返回什么值?排序需要O(n lg n)个时间;您可以使用堆在O(n)时间内获得第二个(或任何
k
th,对于常量
k
)最大的项。此代码中
n
的意义是什么?您正在打印
列表的返回值。remove()
,它总是
。仅供参考,
通常是无序的,因此,在将
arr
转换为
set
之前对其进行排序是相当多余的。想想看:
l.remove(max(l))
“know”如何返回
l
中的下一个最大值?或者您甚至可能期望它返回什么值?排序需要O(n lg n)个时间;您可以使用堆来获得O(n)时间内第二个(或任何
k
th,常数
k
)最大的项。这段代码中
n
的意义是什么?我正在尝试,但如果我的列表中有以下元素:[2,3,6,6,5]我的标准值是:3@WSS我的错,请再试一次!我正在尝试,但如果我的列表中有以下元素:[2,3,6,6,5],我的标准值是:3@WSS我的错,请再试一次!谢谢你,伙计,我读到了。。有意义的回报给我“没有”谢谢你,伙计,我读到了。。有意义的回报给我'没有'多一点的背景是受欢迎的。什么是堆?(因为它不是一个日常的标准类型)它比OP的方法有什么好处,等等。另外,
map
返回一个迭代器,因此我认为需要
list()
。@WSS一个简单的注释就足够了;不需要提供屏幕截图的神秘链接。欢迎提供更多上下文。什么是堆?(因为它不是一个日常的标准类型)它比OP的方法有什么好处,等等。另外,
map
返回一个迭代器,因此我认为需要
list()
。@WSS一个简单的注释就足够了;不需要提供屏幕截图的神秘链接。
print(sorted(set(arr))[-2])
import heapq

n = int(input())
arr = [int(x) for x in input.split()]
heapq.heapify(arr)   # In-place; does not return the heapified list.
print(heapq.nlargest(2, arr)[-1])