在 Python 中检查列表是否严格递增

pythonserver side programmingprogramming更新于 2025/12/26 1:48:17

给定一个列表,我们可能需要检查其元素的顺序。在本文中,我们将找出列表中存在的元素是否严格递增。下面的程序实现了该目标。

使用 all 和 zip

在这种方法中,我们首先对每个元素进行切片,并将其值与切片的下一个元素进行比较。如果所有这些比较都成立,那么我们得出结论,列表是严格递增的。

示例

listA = [11,23,42,51,67]
# 给定列表
print("Given list : ",listA)
# 应用 all 和 range
if (all(i < j for i, j in zip(listA, listA[1:]))):
   print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")
# 再次检查
listB = [11,23,21,51,67]
print("Given list : ",listB)
# 应用 all 和 range
if (all(i < j for i, j in zip(listB, listB[1:]))):
   print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")

输出

运行上述代码得到以下结果 −

Given list : [11, 23, 42, 51, 67]
Yes, List is sorted.
Given list : [11, 23, 21, 51, 67]
No, List is not sorted.

使用 itertools.starmap

创建一个迭代器,使用从可迭代对象获得的参数计算函数。我们将元素列表逐个切片,然后通过小于等于运算符进行压缩。请注意,我们在以下示例中使用了字符串而不是数字。

示例

import operator
import itertools

listA = ['Mon','Tue','Sun']
# 给定列表
print("Given list : ",listA)
# 应用 all 和 range
if all(itertools.starmap(operator.le,
   zip(listA, listA[1:]))):
print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")
# 再次检查
listB = ['Mon','Sun','Tue']
print("Given list : ",listB)
# 应用 all 和 range
if all(itertools.starmap(operator.le,
   zip(listB, listB[1:]))):
   print("Yes, List is sorted.")
else:
   print("No, List is not sorted.")

输出

运行上述代码得到以下结果 −

Given list : ['Mon', 'Tue', 'Sun']
No, List is not sorted.
Given list : ['Mon', 'Sun', 'Tue']
Yes, List is sorted.

相关文章


有用资源