引言:
Python中的容器是一种可以存储其他对象的数据结构。主要的容器类型包括列表(list)、元组(tuple)、字符串(String)集合(set)和字典(dictionary)。下面是每种容器的基本语法和一些常用函数。
容器:
容纳多份相同的数据:

容器有不同的分类如:列表,元组,字符串,集合,字典:
1. 列表(List)
特点:
- 有序的集合,可以存储重复的元素。
- 支持索引和切片操作。
- 是可变的,意味着可以添加、删除或修改元素。
基本语法:
my_list = ['hz', 565, "mn", ["wo", "like", "you"]]
底层其实和Java中的ArrayList<Object>类似:其底层也是数组,但是可以通过数组的索引来访问:而且也可以通过其反向访问
my_list = ['hz', 565, "mn", ["wo", "like", "you"]]
print(my_list[3]) # 输出:['wo', 'like', 'you']
print(my_list[-1]) # 输出:['wo', 'like', 'you']
print(my_list[3][2]) # 输出:you
print(my_list[-1][-1]) # 输出:you
注意: 列表可以一次存储多个数据,也可以为不同的数据类型(这和JAVA中的List有区别),支持嵌套
常用函数:
append(x):在列表末尾添加一个元素。extend(iterable):扩展列表,将嵌套数据容器内容取出,依次追加到列表尾部,类似一次添加多个元素。-
insert(i, x):在指定位置插入一个元素。 remove(x):移除列表中第一个匹配的元素。pop(i):移除并返回指定位置的元素,如果未指定位置,则移除并返回最后一个元素。也可以使用# del 列表名字【下标】index(x):返回列表中第一个匹配元素的索引。如果找不到,报错ValueErrorcount(x):返回列表中匹配元素的个数。sort([key[, reverse]]):对列表进行排序。reverse():反转列表中的元素。clear():清空列表。
2. 元组(Tuple)
与List列表的区别是,列表可以修改,但是元组不可以修改
当我们程序在封装数据,不喜欢数据被篡改,那么元组就非常合适了
特点:
- 有序的集合,可以存储重复的元素。
- 支持索引和切片操作。
- 是不可变的,意味着一旦创建,就不能修改其内容。
基本语法:
my_tuple = (1, 2, 3, 'a', 'b', 'c')
注意:元组是不可变的,因此没有修改元素的方法。(但是可以修改内部List的内部元素)
常用函数:
count(x):返回元组中匹配元素的个数。index(x):返回元组中第一个匹配元素的索引。- len (元组):统计元组内的元素个数
与列表的区别:
- 元组是不可变的,而列表是可变的。
- 元组通常用于存储不需要修改的数据,而列表则用于需要动态修改的数据。
3. 字符串(String)
特点:
- 有序的字符序列。
- 支持索引和切片操作。
- 是不可变的,意味着一旦创建,就不能修改其内容(但可以通过创建新的字符串来“修改”)。
常用函数(字符串是Python中的内置类型,有大量的方法):
len(s):返回字符串的长度。str.upper():将字符串转换为大写。str.lower():将字符串转换为小写。str.split([sep[, maxsplit]]):通过指定分隔符拆分字符串。str.join(iterable):将可迭代对象中的元素连接成一个字符串。str.find(sub[, start[, end]]):返回子字符串在字符串中最低索引处的位置。str.replace(old, new[, count]):替换字符串中的指定子串。str.strip([chars]):去除字符串首尾的指定字符(默认为空格)。
与元组的区别:
- 字符串是字符的序列,而元组是任意对象的序列。
- 字符串是不可变的,而元组虽然也是不可变的,但它可以包含任何类型的对象。
4. 集合(Set)
特点:
- 无序:集合内不允许重复元素(去重)
- 集合内元素是无序的(不支持下标索引)
基本语法:
my_set = {"hz","hz","mn","mn"}
print(my_set) # {'mn', 'hz'}
注: 不支持下标索引访问,但是和集合和列表一样支持修改的
常用函数:
add(x):添加元素到集合。remove(x):移除集合中的一个元素,如果元素不存在则抛出KeyError。discard(x):移除集合中的一个元素,如果元素不存在则不抛出异常。pop():移除并返回集合中的一个随机元素。clear():清空集合。update(iterable):更新集合,添加指定序列中的所有元素。intersection(iterable):返回集合的交集。union(iterable):返回集合的并集。difference(iterable):返回集合的差集。symmetric_difference(iterable):返回集合的对称差集。- count() : 统计某元素在列表的数量
- len(列表) : 统计列表的总共元素
与列表的区别:
- 集合是无序的,而列表是有序的。
- 集合中的元素是唯一的,而列表中的元素可以重复。
- 集合支持集合操作,而列表不支持。
5. 字典(Dictionary)
类似JAVA中的HashMap<Object,Object>
特点:
- 无序的、不重复的元素集合。
- 支持集合操作,如并集、交集、差集等。
- 是可变的,意味着可以添加或删除元素。
基本语法:
my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 3}
定义空字典:
my_dit = {}
my_dit = dict()
字典【key】 = Value
新增元素: 当key不存在就是
更新元素: 当key存在就是
常用函数:
keys():返回字典中所有的键。values():返回字典中所有的值。items():返回字典中所有的键值对。get(key):返回指定键的值,如果键不存在则返回默认值。pop(key):移除指定键的键值对,并返回其值,如果键不存在则返回默认值。popitem():移除并返回字典中的一个键值对(Python 3.7+ 保证返回的是最后一个插入的键值对)。clear():清空字典。update(other):更新字典,添加或覆盖指定字典中的所有键值对。setdefault(key[, default]):如果键不存在于字典中,则设置键值对。
与列表的区别:
- 字典存储的是键值对,而列表存储的是有序的元素序列。
- 字典中的键是唯一的,而列表中的元素可以重复。
- 字典支持通过键快速查找值,而列表则需要通过索引或遍历来查找元素。
总结:
1. 数据容器分类:

2. 数据容器特点对比:

3. 常用的场景:
1074






