python 列表操作及排序算法详解
本文深入探讨 Python 列表的常用操作,包括元素添加、排序、查找等,并详细讲解冒泡排序算法及其应用。 内容涵盖面试中常见的列表操作问题,例如查找第二大/小值等。
列表元素添加:append()、extend()、insert()
- insert():在指定位置插入元素。
- append():在列表末尾添加单个元素。 即使添加的是列表,也会被视为单个元素。
- extend():将多个元素(来自另一个列表或可迭代对象)添加到列表末尾。
示例:
l1 = [10, 20, 30] l1.append('abcd') # 添加单个元素 print(l1) # 输出: [10, 20, 30, 'abcd'] l1.extend('pqrs') # 添加多个字符 print(l1) # 输出: [10, 20, 30, 'abcd', 'p', 'q', 'r', 's']
登录后复制
列表排序:sort() 与 sorted()
立即学习“Python免费学习笔记(深入)”;
- sort():就地修改原列表,不返回任何值。
- sorted():创建并返回一个新的已排序列表,原列表保持不变。
示例:
l1 = [10, 30, 20] l1.sort() print(l1) # 输出: [10, 20, 30] l2 = sorted(l1) print(l2) # 输出: [10, 20, 30] print(l1) # 输出: [10, 20, 30] (原列表已改变)
登录后复制
查找列表中的最小值、最大值和总和:min()、max()、sum()
l1 = [10, 20, 30, 40, 50] print(min(l1)) # 输出: 10 print(max(l1)) # 输出: 50 print(sum(l1)) # 输出: 150
登录后复制
查找第二小值和第二大值
利用 float('inf') (正无穷) 和 -float('inf') (负无穷) 简化代码:
l1 = [10, 20, 310, 40, 50] min_value = float('inf') second_min = float('inf') for x in l1: if x < min_value: second_min = min_value min_value = x elif x < second_min and x != min_value: second_min = x print(second_min) # 输出: 20 max_value = -float('inf') second_max = -float('inf') for x in l1: if x > max_value: second_max = max_value max_value = x elif x > second_max and x != max_value: second_max = x print(second_max) # 输出: 50
登录后复制
冒泡排序
冒泡排序是一种简单的排序算法,通过不断比较相邻元素并交换来实现排序。
示例:
l1 = [40, 30, 20, 10] n = len(l1) for i in range(n): for j in range(0, n-i-1): if l1[j] > l1[j+1]: l1[j], l1[j+1] = l1[j+1], l1[j] print(l1) # 输出: [10, 20, 30, 40]
登录后复制
成员运算符:in 和 not in
in 和 not in 用于检查元素是否在列表中。
l1 = [100, 67, 54, 101, 220, 670, 45, 32] print(100 in l1) # 输出: True print(120 not in l1) # 输出: True
登录后复制
字符串反转
s = "today is thursday" reversed_s = s[::-1] #利用切片反转 print(reversed_s) # 输出: yadsruht si yadot
登录后复制
希望以上内容能够帮助您更好地理解 Python 列表操作和排序算法。 如有任何疑问,请随时提出。
以上就是Python 日期列表函数的详细内容,更多请关注其它相关文章!