Python 如何将数组中x处的值与x+处的值进行比较;1.
我注意到,在许多编码问题中,需要比较数组中的x与x+1,尽管我从未找到一种好方法 我怎么做?有可能吗?对不起,如果这似乎是一个noob问题,我还不是很好 以下是我通常尝试的:Python 如何将数组中x处的值与x+处的值进行比较;1.,python,Python,我注意到,在许多编码问题中,需要比较数组中的x与x+1,尽管我从未找到一种好方法 我怎么做?有可能吗?对不起,如果这似乎是一个noob问题,我还不是很好 以下是我通常尝试的: for x in range(len(nums)): if nums[x] > nums[x+1 < len(nums)]: count +=1 范围内x的(len(nums)): 如果nums[x]>nu
for x in range(len(nums)):
if nums[x] > nums[x+1 < len(nums)]:
count +=1
范围内x的(len(nums)):
如果nums[x]>nums[x+1
没问题!我们都从某处开始:)
这里有一种方法:
for x in range(len(nums) - 1):
if nums[x] > nums[x+1]:
#do something
您可以使用
reduce
例如,要获得列表的最大值,可以执行以下操作
import functools
arr = [1,2,3,4,5]
print(functools.reduce(lambda a,b : a if a > b else b, arr))
输出
5
这也很好参考。len(nums)将返回数组中的值数,当您在数组中循环时,将使用索引0(而不是1)访问该数组中的第一个值
例如:
nums = [1,3,5,7]
len(nums) == 4
如果你跑
for x in range(len(nums)):
if nums[x] > nums[x+1]:
#code here
您将在nums[x+1]处得到一个错误,因为在上一次迭代中,它变为nums[3+1],即nums[4],而该索引不在该数组中。你的最后一个索引是3
所以你真正想要的是
for x in range(len(nums)-1):
if nums[x] > nums[x+1]:
#code here
您可以使用此helper函数遍历任意序列的相邻对:
def pairwise(iterable):
"s -> [[s0,s1], [s1,s2], [s2, s3], ...]"
a, b = iter(iterable), iter(iterable)
next(b, None)
return zip(a, b)
nums = 1, 5, 3, 7
count = 0
for x, x1 in pairwise(nums):
if x > x1:
count += 1
用于范围内的x(len(nums)-1):
阵列?什么阵列?Python有列表,而不是数组。您必须使用类似于numpy
的包才能获得数组。列表的索引非常严格(尤其是与numpy
相比)。布尔索引(来自