使用 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 中检查列表是否已排序提供了一种简洁而高效的方式。