列表,元组,集合,字符串的复习——python

        前面我们已经学习了数列,元组,集合,字符串。怕大家忘记,我们来复习一下吧。

一、以下是关于列表、元组、集合、字符串的复习总结:

1、列表

  • 特性

    • 可变:可动态增删改元素。

    • 有序:元素按插入顺序排列,允许重复。

    • 语法:用 [] 表示,如 [1, 2, "a"]

  • 常用操作

# 增删改
list.append(3)         # 末尾添加元素
list.insert(0, "x")    # 插入元素
list.pop(1)            # 删除索引1的元素
list[0] = 10           # 修改元素

# 切片(左闭右开)
sub_list = list[1:3]   # 获取索引1到2的元素
  • 适用场景:需要动态修改的有序数据集合(如用户购物车)。

2、 元组(Tuple)

  • 特性

    • 不可变:创建后不能增删改元素。

    • 有序:允许重复元素。

    • 语法:用 () 表示,如 (1, "a", [2,3])

    • 单元素元组:必须加逗号,如 (1,)

  • 常用操作

t = (1, 2, 3)
t[0]        # 访问元素 → 1
t.index(2)  # 查找元素索引 → 1
t.count(2)  # 统计元素出现次数 → 1
  • 适用场景:不可变数据(如坐标 (x, y))、字典的键、函数返回多个值。

3、 集合(Set)

  • 特性

    • 可变:可增删元素,但元素不可重复

    • 无序:无索引,不能通过位置访问。

    • 语法:用 {} 表示,如 {1, 2, 3}

    • 空集合:必须用 set(){} 是空字典。

  • 常用操作

# 集合运算
a = {1, 2}; b = {2, 3}
a | b   # 并集 → {1, 2, 3}
a & b   # 交集 → {2}
a - b   # 差集 → {1}

# 增删
s.add(4)     # 添加元素
s.discard(2) # 删除元素(不报错)

  • 适用场景:去重、成员快速判断(如 if x in set)。

4、字符串(String)

  • 特性

    • 不可变:修改会生成新字符串。

    • 有序:字符按顺序排列,支持索引和切片。

    • 语法:用 '' 或 "" 表示,如 "Hello"

  • 常用操作

s = "hello"
s[1:3]          # 切片 → "el"
s.upper()       # 转大写 → "HELLO"
s.replace("h", "H")  # 替换 → "Hello"
s.split("e")    # 分割 → ["h", "llo"]
"-".join(["a", "b"])  # 拼接 → "a-b"

二、对比

对比表格(核心区别)
特性 列表(List) 集合(Set) 元组(Tuple) 字符串(String)
可变性 ✔️ ✔️
有序性 ✔️ ✔️ ✔️
唯一性 ✔️
语法 [ ] { } ( ) ' ' 或 " "
典型用途 动态数据存储 去重、集合运算 不可变数据 文本处理

(1)易错点提醒

  1. 空集合:必须用 set(){} 是空字典。

  2. 单元素元组:写成 (1,),而不是 (1)

  3. 字符串不可变s = s + "!" 会生成新字符串,原字符串不变。

  4. 元组的元素可变性:若元组包含列表,列表内容可修改。

t = (1, [2, 3])
t[1].append(4)  # 允许 → (1, [2, 3, 4])

(2)一句话总结

  • 列表:动态修改的有序工具箱。

  • 集合:去重和集合运算的数学工具。

  • 元组:不可变的“安全数据容器”。

  • 字符串:不可变的文本处理器。

三、内置方法的相同点和不同点

        以下是 列表(List)、集合(Set)、元组(Tuple)、字符串(String) 内置方法的对比,重点总结它们的 相同点 和 不同点,帮助你快速掌握核心区别:

1、相同点

(1)通用操作

  • len():获取元素个数(如 len([1,2,3]) → 3)。

  • in 关键字:判断元素是否存在(如 "a" in "apple" → True)。

  • 迭代遍历:支持 for 循环(如 for x in [1,2,3]:)。

  • + 和 *:部分支持(列表、元组、字符串可用,集合不可用):

[1,2] + [3] → [1,2,3]    # 列表拼接
("a",) * 3 → ("a","a","a")  # 元组重复
"hi" * 2 → "hihi"        # 字符串重复

(2)部分共有方法:

  • index():查找元素首次出现的索引(列表、元组、字符串支持,集合无序故不支持)。
[1,2,3].index(2) → 1
"abc".index("b") → 1
  • count():统计元素出现次数(列表、元组、字符串支持,集合元素唯一故无需此方法)。
(1,2,2).count(2) → 2
"apple".count("p") → 2

2、不同点

(1)可变性决定的方法差异

列表(可变)

  • 增删改方法

    • append(x):末尾添加元素。

    • insert(i, x):在索引 i 处插入元素。

    • pop(i):删除并返回索引 i 的元素。

    • remove(x):删除首个值为 x 的元素。

    • sort():原地排序

lst = [3, 1, 2]
lst.sort()    # → [1, 2, 3]

集合(可变)

  • 增删方法

    • add(x):添加元素。

    • remove(x):删除元素(若不存在报错)。

    • discard(x):删除元素(不报错)。

    • pop():随机删除并返回一个元素(无序性)。

  • 集合运算

    • union()|)、intersection()&)、difference()-)。

s = {1, 2}
s.add(3)    # → {1, 2, 3}

元组(不可变)

  • 无增删改方法,仅有 count() 和 index()

t = (1, 2, 2)
t.count(2) → 2  # 仅查询操作

字符串(不可变)

  • 无原地修改方法,所有操作返回新字符串:

    • upper():转为大写。

    • replace(old, new):替换子串。

    • split():按分隔符分割为列表。

    • join(iterable):拼接可迭代对象中的元素。

s = "hello"
s_new = s.replace("h", "H")  # → "Hello"(原字符串不变)

2、独有方法

数据结构 独有方法或特性
列表 extend()reverse()copy()clear()
集合 intersection_update()symmetric_difference()
元组 无特有方法(因不可变性)
字符串 strip()startswith()endswith()format()

四、对比表格

方法/操作 列表(List) 集合(Set) 元组(Tuple) 字符串(String)
增删改方法 ✔️ ✔️
append()/add() ✔️(append) ✔️(add)
remove() ✔️ ✔️
index() ✔️ ✔️ ✔️
count() ✔️ ✔️ ✔️
sort() ✔️

split()/

join()

✔️
集合运算 ✔️

五、关键总结

  1. 可变性

    • 列表和集合可动态修改,元组和字符串不可变。

  2. 有序性

    • 列表、元组、字符串有序(支持索引和切片),集合无序。

  3. 核心用途

    • 列表:动态数据集合。

    • 集合:去重和数学运算。

    • 元组:不可变数据容器。

    • 字符串:文本处理和格式化。

你可能感兴趣的:(python,开发语言)