我在这个网站上找到了这个代码来找到第二大数字:
def second_largest(numbers):
m1, m2 = None, None
for x in numbers:
if x >= m1:
m1, m2 = x, m1
elif x > m2:
m2 = x
return m2
Run Code Online (Sandbox Code Playgroud)
是否可以修改此代码以找到第二个最小的数字?所以举个例子
print second_smallest([1, 2, 3, 4])
2
Run Code Online (Sandbox Code Playgroud) 所以我必须从列表中找到第二大数字.我是通过简单的循环来完成的.
我的方法是将列表分成两部分,然后将最大数字分成两部分,然后比较两个数字.我将从其中两个中选择较小的数字.我不能使用现成的功能或不同的方法.
基本上,这是我的代码.但它运行不正常
#!/usr/local/bin/python2.7
alist=[-45,0,3,10,90,5,-2,4,18,45,100,1,-266,706]
largest=alist[0]
h=len(alist)/2
m=len(alist)-h
print(alist)
for i in alist:
if alist[h]>largest:
largest=alist[h]
i=i+1
print(largest)
Run Code Online (Sandbox Code Playgroud)