使用 all() 和 zip() 进行检查
在这一步中,你将学习如何使用 all()
和 zip()
函数来检查列表是否已排序。这些函数提供了一种简洁而高效的方法来验证列表中元素的顺序。
首先,让我们了解一下 zip()
函数。zip()
函数接受多个可迭代对象(例如列表)作为输入,并返回一个元组迭代器,其中每个元组包含来自输入可迭代对象的对应元素。
考虑以下示例:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
zipped = zip(list1, list2)
print(list(zipped))
将此代码添加到你的 sort_list.py
文件中,替换之前的内容。然后,运行脚本:
python sort_list.py
你应该会看到以下输出:
[(1, 4), (2, 5), (3, 6)]
zip()
函数创建了一个迭代器,该迭代器生成包含 list1
和 list2
对应元素的元组。
现在,让我们了解一下 all()
函数。all()
函数接受一个可迭代对象作为输入,如果可迭代对象中的所有元素都为真,则返回 True
,否则返回 False
。
考虑以下示例:
bool_list = [True, True, True]
print(all(bool_list))
bool_list = [True, False, True]
print(all(bool_list))
将此代码添加到你的 sort_list.py
文件中并运行:
python sort_list.py
你将看到以下输出:
True
False
现在,让我们结合使用 zip()
和 all()
来检查列表是否已排序。思路是将列表中的每个元素与其下一个元素进行比较,检查列表是否按升序排列。
numbers = [1, 2, 3, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
numbers = [1, 2, 5, 4, 5]
is_sorted = all(numbers[i] <= numbers[i+1] for i in range(len(numbers)-1))
print(is_sorted)
修改你的 sort_list.py
文件以包含此代码。再次运行脚本:
python sort_list.py
你应该会看到以下输出:
True
False
此代码使用带有 zip()
的生成器表达式来比较列表中的相邻元素。然后,all()
函数检查所有比较结果是否都为真,以此表明列表已排序。
这种方法为在 Python 中检查列表是否已排序提供了一种简洁而高效的方式。