在给定的列表中,如何确定较小的数字紧跟较大的数字?(Python)
例如,给您一个列表,例如:在给定的列表中,如何确定较小的数字紧跟较大的数字?(Python),python,python-3.x,Python,Python 3.x,例如,给您一个列表,例如: a=[14,26,30,15,25,30] 前面有较大数字的小数字是15。所以我只想打印数字15 这就是我所处的位置: def alist(a): for i in a: if i ??? 帮助,我迷路了。如果您在循环中存储每个项目的最后一个编号,您可以回头查看 首先存储列表中的第一个数字。在之后的数字上循环(使用python数组切片a[1://code>) 如果当前数字小于使用for循环会慢得多,最好使用NumPy,如下所示: import
a=[14,26,30,15,25,30]
前面有较大数字的小数字是15。所以我只想打印数字15
这就是我所处的位置:
def alist(a):
for i in a:
if i ???
帮助,我迷路了。如果您在循环中存储每个项目的最后一个编号,您可以回头查看 首先存储列表中的第一个数字。在之后的数字上循环(使用python数组切片
a[1://code>)
如果当前数字小于使用for
循环会慢得多,最好使用NumPy
,如下所示:
import numpy as np
a = [14, 26, 30, 15, 25, 30]
a = np.array(a)
greater_num = a[np.append(False, (a[1:]-a[:-1])<0)]
print(greater_num)
# Output: array([15])
将numpy导入为np
a=[14,26,30,15,25,30]
a=np.数组(a)
greater_num=a[np.append(False,(a[1:]-a[:-1])您可以这样做,而无需使用for循环-
a = [14, 26, 30, 15, 25, 30]
s = set(a) # This is required if you have duplicate elements in your list, will convert list into sets and remove duplicates
print (sorted(s)[1]) # print the second smallest number.
Oputput:15
你也可以使用
Oputput:15
为什么数字是15而不是14?(14如果a=[14,26,30,15,25,9]
?它应该只打印15吗?还是也打印9,因为它比25小。如果a=[14,26,30,15,13,9]
?
import heapq
a = [14, 26, 30, 15, 25, 30]
print (heapq.nsmallest(2, a)[-1]) # print the second smallest number.