前言  

  数据容器的作用是存储类似类型或相关联的数据,这些数据有时需要进行多次调用以及后续处理。通过容器将数据保存在一个集合中能够更好地管理和组织这些数据。常用于数据的分类、搜索和排序等情况,常用的有列表、元组、集合、字典。(除了以上提到的每个容器种类外,也有其他更特殊化的python容器。例如numpy中提供的array)

1.详细介绍

  (1)列表

列表(List)是一种可变序列类型,它可以存储任意类型的元素,并且可以进行增、删、改、查等操作。下面是关于 Python 列表的一些常用知识点:

        1。创建列表

创建列表的方法非常简单,只需要使用方括号 [] 将多个元素括起来即可,元素之间用逗号 ',' 隔开。例如:

my_list = [1, 2, 3, 'hello']

 

         2.访问元素

通过索引访问列表中的元素,索引从 0 开始。例如:

my_list = [1, 2, 3, 'hello'] 
print(my_list[0]) # 输出: 1 
print(my_list[-1]) # 输出: 'hello'

         3.修改元素

如果要修改列表中的某个元素,只需直接赋值即可。例如:

my_list = [1, 2, 3, 'hello'] 
my_list[1] = 'world' 
print(my_list) # 输出: [1, 'world', 3, 'hello']

 

        4.删除元素

有三种方法删除列表中的元素:pop(), remove() 和 del。其中,pop 方法弹出列表中的一个元素,并返回弹出的元素;remove 方法删除列表中指定的元素,如果列表中有多个相同的元素,只会删除第一个;del 方法通过提供索引来删除指定位置上的元素,或通过切片来删除一段元素。

my_list = [1, 2, 3, 'hello'] 
my_list.pop() # 弹出列表中的最后一个元素,返回 'hello' 
my_list.remove(2) # 删除第一个值为 2 的元素 
del my_list[0] # 删除列表中的第一个元素 
del my_list[1:3] # 删除列表中的第二个和第三个元素

 

        5.切片

切片可以用来访问列表中的一段连续元素。它由开始索引、结束索引和步长三个参数组成,其中步长默认为1。下面是一些例子:

my_list = [1, 2, 3, 'hello'] 
print(my_list[1:3]) # 输出: [2, 3] 
print(my_list[:2]) # 输出: [1, 2] 
print(my_list[-2:]) # 输出: [3, 'hello'] 
print(my_list[::2]) # 输出: [1, 3]

 

        6.操作符

与其他序列类型相似,列表也支持加、乘、in 和 not in 等操作符。例如:

a = [1, 2] 
b = ['hello', 'world'] 
print(a + b) # 输出: [1, 2, 'hello', 'world'] 
print(a * 3) # 输出: [1, 2, 1, 2, 1, 2] 
print(1 in a) # 输出: True 
print('hello' not in b) # 输出: False

以上是 Python 中列表的一些基本用法,列表还有很多高级用法和方法,包括排序、遍历、推导式等。

(2)元组

元组(Tuple)是一种不可变序列类型,它和列表非常相似,但元素不能被修改。下面是关于 Python 元组的一些常用知识点:

  1. 创建元组

创建元组的方法也很简单,只需要用小括号 () 将多个元素括起来即可,元素之间用逗号 ',' 隔开。例如:

my_tuple = (1, 2, 3, 'hello')

注意,如果元组只有一个元素,则需要在元素后面添加逗号表示这是一个元组而不是普通数据类型,例如:

t = (1,) # 这是一个包含一个元素的元组 
x = (1) # 这只是一个整数
  1. 访问元素

通过索引访问元组中的元素,索引从 0 开始。例如:

my_tuple = (1, 2, 3, 'hello')  
print(my_tuple[0]) # 输出: 1 
print(my_tuple[-1]) # 输出: 'hello'
  1. 切片

与列表类似,元组也支持切片操作。例如:

my_tuple = (1, 2, 3, 'hello') 
print(my_tuple[1:3]) # 输出: (2, 3) 
print(my_tuple[:2]) # 输出: (1, 2) 
print(my_tuple[-2:]) # 输出: (3, 'hello') 
print(my_tuple[::2]) # 输出: (1, 3)
  1. 元组的不可变性

元组和列表最大的区别就是元组是不可变的,也就是说一旦创建元组就无法修改它的元素。如果试图对元组进行修改操作,会抛出 TypeError。

my_tuple = (1, 2, 3, 'hello') 
my_tuple[1] = 'world' # 抛出 TypeError
  1. 应用场景

元组虽然不像列表那样灵活,但由于它们是不可变的,因此在某些情况下使用起来更加方便和安全。例如:

  • 当函数需要返回多个值时,可以使用元组作为返回值。
  • 元组可以作为字典的键,而列表不行(因为字典键必须是不可变类型)。
  • 如果要定义一个常量序列,并确保该序列不能被修改,则可以使用元组。

(3)集合

集合(Set)是一种无序的、不重复的数据类型,用于存储多个元素。下面是关于 Python 集合的一些常用知识点:

  1. 创建集合

创建集合有两种方式,一种是使用花括号 {},例如:

my_set = {1, 2, 3, 4}

另一种是使用内置函数 set(),例如:

my_set = set([1, 2, 3, 4])

注意,如果要创建空集合,则必须使用 set() 函数而不能使用 {},因为 {} 创建的是空字典。

  1. 访问集合

由于集合是无序的,因此不能使用索引来访问集合中的元素。我们只能使用 for 循环遍历集合或者使用 in 关键字判断一个元素是否在集合中存在。

my_set = {1, 2, 3, 4} 
for item in my_set: 
    print(item) # 输出: 1, 2, 3, 4 
print(1 in my_set) # 输出: True
  1. 更新集合

我们可以向集合中添加元素,也可以从集合中删除元素。

3.1 添加元素

  • add(item):向集合中添加一个元素。
  • update(iterable):向集合中添加迭代器中的所有元素。
my_set.add(5) 
my_set.update({6, 7}) 
print(my_set) # 输出: {1, 2, 3, 4, 5, 6, 7}

3.2 删除元素

  • remove(item):从集合中删除指定元素,如果该元素不存在,则抛出 KeyError 异常。
  • discard(item):从集合中删除指定元素,如果该元素不存在,则什么都不做。
  • pop():随机删除集合中的一个元素并返回该元素,如果集合为空则抛出 KeyError 异常。
  • clear():清空集合中的所有元素。
my_set.remove(1) 
my_set.discard(8) 
# 以下两个函数都会打印输出一个元素,但是输出的元素可能不一样 
print(my_set.pop()) 
my_set.clear()
  1. 集合运算

集合支持多种运算操作,如求并集、交集、差集等。

set1 = {1, 2, 3} 
set2 = {3, 4, 5} # 求并集 
print(set1 | set2) # 输出: {1, 2, 3, 4, 5} 
print(set1.union(set2)) # 输出: {1, 2, 3, 4, 5} # 求交集 
print(set1 & set2) # 输出: {3} 
print(set1.intersection(set2)) # 输出: {3} # 求差集 
print(set1 - set2) # 输出: {1, 2} 
print(set1.difference(set2)) # 输出: {1, 2}

 (4)字典

字典(Dictionary)是一种无序的键值对(key-value)结构,用于存储多个元素。下面是关于 Python 字典的一些常用知识点:

  1. 创建字典

创建字典有两种方式,一种是使用花括号 {},例如:

my_dict = {"name": "Tom", "age": 18}

另一种是使用内置函数 dict(),例如:

my_dict = dict(name="Tom", age=18)
  1. 访问字典

我们可以通过 key 来访问字典中对应的 value 值。

my_dict = {"name": "Tom", "age": 18} 
print(my_dict["name"]) # 输出: Tom 
print(my_dict.get("name")) # 输出: Tom

其中,get() 方法会默认返回 None 值,如果字典中不存在对应的 key,则不会抛出异常。

  1. 更新字典

我们可以向字典中添加、删除或修改元素。

3.1 添加元素

通过给指定 key 赋值的方式来添加新元素。

my_dict = {"name": "Tom", "age": 18} 
my_dict["gender"] = "Male" 
print(my_dict) # 输出: {'name': 'Tom', 'age': 18, 'gender': 'Male'}

3.2 修改元素

同样是通过给指定 key 赋值的方式,只不过此时 key 已经存在。

my_dict = {"name": "Tom", "age": 18} 
my_dict["name"] = "Jerry" 
print(my_dict) # 输出: {'name': 'Jerry', 'age': 18}

3.3 删除元素

  • pop(key):通过 key 删除对应的键值对,同时返回该值。
  • del dict[key]:删除字典中指定 key 的元素。
  • clear():清空字典中的所有元素。
my_dict = {"name": "Tom", "age": 18} 
my_dict.pop("age") 
del my_dict["name"] 
    my_dict.clear()
  1. 字典运算

字典支持多种常用运算操作,如判断一个 key 是否存在于字典中、获取字典中所有的 keys 或 values 等。

my_dict = {"name": "Tom", "age": 18, "gender": "Male"} # 判断是否存在某个 key 
print("name" in my_dict) # 输出: True 

# 获取所有 key 或所有 value 
print(my_dict.keys()) # 输出: dict_keys(['name', 'age', 'gender']) 
print(my_dict.values()) # 输出: dict_values(['Tom', 18, 'Male']) 

# 获取所有键值对 
print(my_dict.items()) # 输出: dict_items([('name', 'Tom'), ('age', 18), ('gender', 'Male')])

                                       

                                                                                                                                     此致与君共勉