元组、列表、集合、字典和切片
列表(List)
列表是可变的有序序列,元素可重复,用方括号[]定义。支持增删改查操作。
案例
fruits = ["apple", "banana", "cherry"] fruits.append("orange") # 添加元素 fruits[1] = "kiwi" # 修改元素 print(fruits) # 输出: ['apple', 'kiwi', 'cherry', 'orange']元组(Tuple)
元组是不可变的有序序列,元素可重复,用圆括号()定义。常用于固定数据。
案例
colors = ("red", "green", "blue") print(colors[0]) # 输出: red # colors[1] = "yellow" # 报错,元组不可修改集合(Set)
集合是无序且元素唯一的容器,用大括号{}或set()定义。支持交并差集操作。
案例
unique_nums = {1, 2, 3, 3, 2} unique_nums.add(4) # 添加元素 print(unique_nums) # 输出: {1, 2, 3, 4}(自动去重)字典(Dictionary)
字典是键值对的无序集合,键必须唯一,用大括号{}或dict()定义。
案例
student = {"name": "Alice", "age": 20} student["grade"] = "A" # 添加键值对 print(student["name"]) # 输出: Alice切片的使用方法
切片是Python中用于从序列(如列表、字符串、元组等)中提取子序列的强大工具。以下是切片的基本语法和常见用法:
sequence[start:stop:step]start:切片开始的位置(包含该位置元素)。stop:切片结束的位置(不包含该位置元素)。step:切片的步长(默认为1)。
示例代码
# 定义一个列表 my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 基本切片 print(my_list[2:5]) # 输出: [2, 3, 4] # 省略start(从开头开始) print(my_list[:5]) # 输出: [0, 1, 2, 3, 4] # 省略stop(到末尾结束) print(my_list[5:]) # 输出: [5, 6, 7, 8, 9] # 使用步长 print(my_list[1:8:2]) # 输出: [1, 3, 5, 7] # 负数索引(从末尾开始计数) print(my_list[-4:-1]) # 输出: [6, 7, 8] # 反向切片 print(my_list[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]字符串切片
切片同样适用于字符串:
my_string = "Hello, World!" # 提取子字符串 print(my_string[7:12]) # 输出: "World" # 反向切片 print(my_string[::-1]) # 输出: "!dlroW ,olleH"元组切片
元组是不可变的,但切片操作会返回一个新的元组:
my_tuple = (0, 1, 2, 3, 4, 5) # 提取子元组 print(my_tuple[2:5]) # 输出: (2, 3, 4)高级用法
切片可以用于复制序列或修改序列的子集:
# 复制列表 copied_list = my_list[:] print(copied_list) # 输出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 修改子列表 my_list[2:5] = [20, 30, 40] print(my_list) # 输出: [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]输出结果
以下是上述代码片段的输出结果:
[2, 3, 4] [0, 1, 2, 3, 4] [5, 6, 7, 8, 9] [1, 3, 5, 7] [6, 7, 8] [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] "World" "!dlroW ,olleH" (2, 3, 4) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 20, 30, 40, 5, 6, 7, 8, 9]