Python实现列表排序及连接
任务要求
使用Python完成以下两个操作:
1.对给定的列表进行排序,排序方式包含升序和降序两种。
2.将多个列表连接成一个列表。
任务分析
在Python中,列表排序可以通过内置函数sorted()和列表对象的sort()方法来实现。sorted()函数会返回一个新的已排序列表,原列表保持不变;而sort()方法是对原列表进行就地排序。排序时可通过reverse参数控制升序(reverse=False,默认值)或降序(reverse=True)。
列表连接可以使用多种方式实现,如使用+运算符、extend()方法等。+运算符会创建一个新的列表,包含参与运算的所有列表的元素;extend()方法则是将一个列表的元素添加到另一个列表的末尾,会修改原列表。
任务实现
列表排序实现
# 示例列表
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 方法一:使用 sorted() 函数进行升序排序
sorted_numbers_asc = sorted(numbers)
print("使用 sorted() 函数升序排序结果:", sorted_numbers_asc)
# 方法二:使用 sorted() 函数进行降序排序
sorted_numbers_desc = sorted(numbers, reverse=True)
print("使用 sorted() 函数降序排序结果:", sorted_numbers_desc)
# 方法三:使用列表的 sort() 方法进行升序排序
numbers_copy_1 = numbers.copy()
numbers_copy_1.sort()
print("使用 sort() 方法升序排序结果:", numbers_copy_1)
# 方法四:使用列表的 sort() 方法进行降序排序
numbers_copy_2 = numbers.copy()
numbers_copy_2.sort(reverse=True)
print("使用 sort() 方法降序排序结果:", numbers_copy_2)
运行结果:
使用 sorted() 函数升序排序结果: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
使用 sorted() 函数降序排序结果: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
使用 sort() 方法升序排序结果: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
使用 sort() 方法降序排序结果: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
进程已结束,退出代码为 0
说明:
- sorted(numbers):该函数会遍历原列表numbers中的元素,按照元素的大小顺序进行排序,生成一个新的列表并返回,原列表numbers保持不变。默认情况下,排序为升序。
- sorted(numbers, reverse=True):当reverse参数设置为True时,函数会按照降序对列表元素进行排序,同样返回一个新的列表,原列表不变。
- numbers_copy_1.sort():此方法是列表对象的内置方法,会直接对调用该方法的列表进行就地排序,将列表元素按升序排列。由于是就地排序,所以在使用前先复制了原列表,避免修改原列表。
- numbers_copy_2.sort(reverse=True):当reverse参数设置为True时,sort()方法会对列表进行降序排序,同样是就地排序。
列表连接实现
# 示例列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]
# 方法一:使用 + 运算符连接列表
concatenated_list_1 = list1 + list2 + list3
print("使用 + 运算符连接列表结果:", concatenated_list_1)
# 方法二:使用 extend() 方法连接列表
list1_copy = list1.copy()
list1_copy.extend(list2)
list1_copy.extend(list3)
print("使用 extend() 方法连接列表结果:", list1_copy)
运行结果:
使用 + 运算符连接列表结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]
使用 extend() 方法连接列表结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]
进程已结束,退出代码为 0
说明:
- +运算符:list1 + list2 + list3会创建一个新的列表,该列表依次包含list1、list2和list3中的所有元素。原列表list1、list2和list3保持不变。
- extend()方法:list1_copy.extend(list2)会将list2中的所有元素添加到list1_copy的末尾,修改list1_copy列表。接着list1_copy.extend(list3)会将list3中的元素继续添加到list1_copy的末尾,最终实现多个列表的连接。