以下是一个编写的函数来检查一个元组、列表或字符串是否已排序:
def is_sorted(data):
if isinstance(data, (tuple, list)):
return all(data[i] <= data[i+1] for i in range(len(data)-1))
elif isinstance(data, str):
return data == ''.join(sorted(data))
else:
raise TypeError("Unsupported data type")
# 示例用法
print(is_sorted((1, 2, 3))) # 输出 True
print(is_sorted([5, 3, 2])) # 输出 False
print(is_sorted("hello")) # 输出 False
print(is_sorted("abcde")) # 输出 True
print(is_sorted({"a": 1, "b": 2})) # 抛出 TypeError
此函数首先检查数据是否是元组、列表或字符串的实例,如果是,则根据数据类型执行不同的检查逻辑。对于元组和列表,我们使用all()
函数和一个生成器表达式来检查每个元素是否小于或等于后续元素。对于字符串,我们使用sorted()
函数来对其进行排序,然后使用join()
函数将排序后的字符重新连接,最后检查是否与原始字符串相等。如果数据不是元组、列表或字符串,则抛出TypeError
异常。