拿捏Python之数据容器,数据容器的使用。(列表,元组,字典,集合)

Python 中的数据容器是用于存储不同类型数据(如数字、字符串、列表、字典等)的结构。这些容器使得数据的组织、管理和访问变得更加高效和方便。Python 中主要的数据容器类型包括列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。下面将逐一介绍这些容器的基本使用方法。

一、列表(list)

列表(List)在Python中是一个非常强大且灵活的数据结构,它允许你存储一个有序的元素集合,这些元素可以是不同类型的数据(如整数、浮点数、字符串、甚至是其他列表等)。列表是可变的,意味着你可以在创建后添加、删除或修改其中的元素。

1.创建列表[]
​
list_1 = [1, 2, 3, 'a', 'b', 'c']

​
2.访问元素

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

print(my_list[0])  # 输出: 1

你也可以使用切片来访问列表的一个子列表。

print(list_1[1:4])  # 输出: [2, 'd', 3]
3.添加元素
使用 append() 方法在列表末尾添加元素,使用 insert() 方法在指定位置插入元素。
list_1.append(4)
list_1.insert(2, 'd')
print(list_1)
#输出:[1, 2, 'd', 3, 'a', 'b', 'c', 4]
4.删除元素

使用 remove() 方法删除列表中第一个匹配的元素。

使用 pop() 方法删除并返回指定索引的元素(默认是最后一个元素)。

使用 del 语句删除指定索引的元素或整个切片。

使用 clear() 方法删除列表中的所有元素。

list_1.remove('a')  
print(list_1.pop())  # 输出并删除最后一个元素  
del list_1[0]  # 删除第一个元素  
del list_1[1:3]  # 删除索引1到2(不包含3)的元素  
list_1.clear()  # 清空列表
5.查找元素

 使用 in 关键字检查元素是否在列表中。

 使用 index() 方法查找元素的索引。

list_1 = [1, 2, 3, 'a', 'b', 'c']
if 'c' in list_1:
    print("元素存在")
print(list_1.index('c'))  # 输出 'c' 的索引

二、元组(Tuple)

元组(Tuple)是Python中一种重要的数据结构,它用于存储一系列不可变(immutable)的元素。元组与列表(List)非常相似,但主要区别在于元组的元素一旦创建就不能被修改(即元组是不可变的)。这种特性使得元组在特定场景下非常有用。以下是元组的主要作用和使用方法:

1.创建元组:元组通过圆括号()创建,元组内的元素之间用逗号,分隔。
tuple_1 = (1, 2, 3, 'a', 'b', 'c')
print(tuple_1)  # 输出:(1, 2, 3, 'a', 'b', 'c')

注意:即使元组只有一个元素,也需要加上逗号来区分它与括号的其他用途(如数学表达式中的括号)。

tuple_2=(1,)

2.访问元组元素:通过索引(索引从0开始)来访问元组中的元素

print(tuple_1[0])  # 输出: 1
print(tuple_1[-1]) # 输出: 'c',使用负索引访问最后一个元素
3.切片:和列表一样,元组也支持切片操作,用于获取元组的一个子序列。
print(tuple_1[1:3])  # 输出: (2, 3)
4.遍历元组:使用for循环遍历元组中的所有元素
for element in tuple_1:
    print(element)
    #输出:1
#         2
#         3
#         a
#         b
#         c
5.不可变性:元组的不可变性意味着你不能像修改列表那样直接修改元组中的元素。如果你需要修改元组,你必须创建一个新的元组。

这些是使用元组的一些基本方法和作用。由于元组的不可变性,它们在需要数据不变性的场合非常有用,比如用作字典的键或在多线程环境中共享数据。

三、字典(dict)

字典(Dictionary)是一种非常重要的数据结构,它在多种编程语言中都有实现,包括Python、JavaScript、C#等。字典的主要作用是存储键值对(key-value pairs),其中每个键都是唯一的,并且与某个值相关联。这种结构非常适合用于快速查找、添加和删除数据。

字典的作用

  1. 存储映射关系:字典最适合存储具有映射关系的数据,如用户ID到用户信息的映射、单词到定义的映射等。
  2. 快速查找:由于字典内部通常通过哈希表实现,因此查找键对应的值的时间复杂度接近于O(1),非常高效。
  3. 动态集合:字典的大小可以动态变化,根据需要添加或删除键值对。

1.创建字典

# 使用大括号{}创建字典  
dict_1= {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 使用dict()函数创建字典  
dict_2 = dict(name='Alice', age=30, city='New York')  
dict_3 = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])
2.访问字典中的值(字典是无序的,不能使用索引)

# 使用键来访问值
print(dict_1['name'])  # 输出: Alice  

# 使用get()方法访问值,如果不存在该键,则返回None(或指定的默认值)
print(dict_1.get('age', 'Not Found'))  # 输出: 30
print(dict_1.get('email', 'Not Found'))  # 输出: Not Found

若用键来访问,注意:当键不存在时会报错,用get()更安全。

3.修改字典
# 修改现有键的值  
dict_1['age'] = 31

# 添加新的键值对  
dict_1['email'] = '123456789qq.com'
4.删除字典中的项

# 使用del语句删除键值对  
del dict_1['city']

# 使用pop()方法删除键值对,并返回该键对应的值  
city = dict_1.pop('city', 'Not Found')  # 如果'city'不存在,则返回'Not Found'  

# 使用clear()方法清空字典  
dict_1.clear()

5.遍历字典

# 遍历字典的键  
for key in dict_1:  
    print(key)  
  
# 遍历字典的键值对  
for key, value in dict_1.items():  
    print(key, value)  

四、集合(set)

集合的作用

  1. 去重:集合可以自动去除重复的元素,这使得它在需要唯一元素的场景中非常有用,比如数据清洗、输入验证等。
  2. 关系测试:集合提供了丰富的数学集合操作,可以快速进行并集、交集、差集和对称差集等操作,这些操作在数据分析、算法设计等领域非常有用。
  3. 成员测试:可以高效地判断某个元素是否存在于集合中。

1.创建集合

注意:使用大括号{}创建集合由于大括号还用于创建字典,所以创建空集合时不能直接使用{}(这会创建一个空字典),而应该使用set()

# 创建一个集合  
set_1 = {1, 2, 3, 4, 5}

# 创建一个空集合  
empty_set = set()
2.集合操作

1.并集:使用|union()方法。

2.交集:使用&intersection()方法。

3.差集:使用-difference()方法(A - B 表示在A中但不在B中的元素)。

4.对称差集:使用^symmetric_difference()方法(A ^ B 表示在A或B中,但不同时在A和B中的元素)。

# 并集  
set1 = {1, 2, 3}  
set2 = {3, 4, 5}  
union_set = set1 | set2  # 或 set1.union(set2)  
  
# 交集  
intersection_set = set1 & set2  # 或 set1.intersection(set2)  
  
# 差集  
difference_set = set1 - set2  # 或 set1.difference(set2)  
  
# 对称差集  
symmetric_difference_set = set1 ^ set2  # 或 set1.symmetric_difference(set2)

3.集合元素的增删改查

1.添加元素:使用add()方法(添加单个元素)或update()方法(添加多个元素)。

2.删除元素:使用remove()方法(如果元素不存在则抛出异常)、discard()方法(如果元素不存在则不抛出异常)或pop()方法(随机删除并返回集合中的一个元素)。

3.清空集合:使用clear()方法。

# 添加元素  
set_1.add(6)
set_1.update([7, 8, 9])

# 删除元素  
set_1.remove(2)  # 如果2不在集合中,会抛出KeyError  
set_1.discard(3)  # 如果3不在集合中,不会抛出异常  
popped_element = set_1.pop()  # 随机删除一个元素并返回  

# 清空集合  
set_1.clear()

以上就是数据容器,数据容器的使用。希望帮助你拿捏python。

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