python的数组常见操作
1. 创建数组
# 空列表 empty_list = [] # 初始化列表 my_list = [1, 2, 3, "apple", True] # 可混合类型 numbers = [5, 2, 8, 4, 1]
2. 访问元素
# 通过索引(从0开始) print(my_list[0]) # 输出:1 print(my_list[-1]) # 输出:True(负数索引从末尾开始) # 切片(左闭右开区间) print(numbers[1:3]) # 输出:[2, 8](索引1到2) print(numbers[:3]) # 输出:[5, 2, 8](从头到索引2) print(numbers[2:]) # 输出:[8, 4, 1](索引2到末尾)
3. 修改元素
my_list[0] = "banana" # 修改第一个元素 print(my_list) # 输出:["banana", 2, 3, "apple", True]
4. 添加元素
# 末尾添加单个元素 my_list.append(10) # 列表变为[... , True, 10] # 合并另一个列表(或可迭代对象) my_list.extend([20, 30]) # 列表末尾添加20和30 # 在指定位置插入元素 my_list.insert(1, "orange") # 在索引1处插入"orange"
5. 删除元素
# 按值删除(删除第一个匹配项) my_list.remove("apple") # 删除"apple" # 按索引删除 popped = my_list.pop(2) # 删除索引2的元素,返回被删元素 del my_list[0] # 删除第一个元素 # 清空列表 my_list.clear() # 列表变为[]
6. 遍历和列表推导式
# 直接遍历元素 for item in my_list: print(item) # 遍历索引和元素 for index, value in enumerate(my_list): print(f"索引{index}的值是{value}")
列表推导式
# 生成新列表(如平方数) squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16] # 带条件的推导式 even_numbers = [x for x in range(10) if x % 2 == 0] # [0, 2, 4, 6, 8]
7. 排序和反转
# 原地升序排序(修改原列表) numbers.sort() # 变为[1, 2, 4, 5, 8] numbers.sort(reverse=True) # 降序排序 # 生成新排序列表(不修改原列表) sorted_numbers = sorted(numbers) # 反转列表 numbers.reverse() # 原地反转 reversed_list = numbers[::-1] # 生成新反转列表
8. 查找个统计
# 判断元素是否存在 if "apple" in my_list: print("存在") # 查找索引(不存在会报错) index = numbers.index(5) # 返回第一个5的索引 # 统计元素出现次数 count = numbers.count(2) # 返回2出现的次数
9. 内置函数
length = len(numbers) # 列表长度 total = sum(numbers) # 元素总和(仅限数字) max_num = max(numbers) # 最大值 min_num = min(numbers) # 最小值
10. 深拷贝和浅拷贝
# 浅拷贝(复制一层) copied = numbers.copy() # 或 copied = numbers[:] # 注意:嵌套列表需深拷贝(需导入copy模块) import copy deep_copied = copy.deepcopy(nested_list)
11. 交集、合集、差集
交集:同时存在于所有列表中的元素(去重)。
list1 = [1, 2, 2, 3] list2 = [2, 3, 4] # 转换为集合求交集 intersection = list(set(list1) & set(list2)) # 输出 [2, 3](去重) # 或 intersection = list(set(list1).intersection(list2))
合集:所有列表中的唯一元素(去重)。
union = list(set(list1) | set(list2)) # 输出 [1, 2, 3, 4]
差集:存在于列表 A 但不在列表 B 中的元素(去重)。
diff = list(set(list1) - set(list2)) # 输出 [1]