🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。
前言:
🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~
✨个人主页:点我直达,在这里肯定能找到你想要的~
👍专栏介绍:Python学习 ,一个很哇塞的专栏~
想看往期历史文章,可以浏览此博文: 历史文章目录
,后续所有文章发布都会同步更新此博文~
【Python学习】元组、列表、集合、字典的各种用法大全
1. Tuple (元组)
元组是不可变的数据结构,一旦创建就不能修改。
创建
t = (1, 2, 3) # 创建一个元组
t_single = (1,) # 单个元素的元组需要加逗号
访问
print(t[0]) # 访问第一个元素
print(t[-1]) # 访问最后一个元素
切片
print(t[1:3]) # 从第2个到第3个元素(不包括第4个元素)
元组方法
count(x)
:返回 x 在元组中出现的次数index(x)
:返回 x 在元组中的索引位置(如果不存在会抛出异常)
t = (1, 2, 3, 1)
print(t.count(1)) # 2
print(t.index(2)) # 1
元组的优点
- 性能:由于不可变,元组的创建和访问比列表稍微高效。
- 用于作为字典的键:由于不可变性,元组可以作为字典的键。
2. List (列表)
列表是可变的、有序的集合,可以存储任意类型的元素。
创建
l = [1, 2, 3, 'a', True]
访问
print(l[1]) # 访问第二个元素
print(l[-1]) # 访问最后一个元素
切片
print(l[1:3]) # 获取第二到第三个元素
常见操作
append(x)
:在列表末尾添加元素insert(i, x)
:在索引 i 位置插入元素 xextend(iterable)
:扩展列表,将 iterable 中的所有元素添加到列表末尾remove(x)
:删除第一个匹配的元素 xpop(i)
:移除并返回索引 i 位置的元素(默认为最后一个元素)index(x)
:返回元素 x 在列表中的索引count(x)
:返回元素 x 在列表中出现的次数sort()
:排序列表reverse()
:反转列表clear()
:清空列表
l = [1, 2, 3]
l.append(4) # [1, 2, 3, 4]
l.insert(1, 10) # [1, 10, 2, 3, 4]
l.remove(10) # [1, 2, 3, 4]
l.pop(2) # [1, 2, 4]
l.sort() # [1, 2, 4]
列表的优点
- 列表是最常用的数据结构,灵活且功能丰富。
- 支持动态大小调整。
3. Set (集合)
集合是无序且不重复的元素集合。它主要用于去重和测试成员关系。
创建
s = {1, 2, 3, 4}
empty_set = set() # 空集合
添加和删除元素
s.add(5) # 添加元素
s.remove(3) # 删除指定元素(如果元素不存在会抛出 KeyError)
s.discard(4) # 删除指定元素,如果不存在不会抛错
集合常用操作
union()
:返回两个集合的并集intersection()
:返回两个集合的交集difference()
:返回集合的差集issubset()
:判断一个集合是否为另一个集合的子集issuperset()
:判断一个集合是否为另一个集合的超集isdisjoint()
:判断两个集合是否没有交集
s1 = {1, 2, 3}
s2 = {3, 4, 5}
print(s1.union(s2)) # {1, 2, 3, 4, 5}
print(s1.intersection(s2)) # {3}
print(s1.difference(s2)) # {1, 2}
集合的优点
- 集合中没有重复元素,适合去重。
- 可以快速判断元素是否存在。
字典(dict
)是 Python 中最常用的数据结构之一,它是一个无序的、可变的键值对集合。每个键(key
)都映射到一个值(value
)。字典的键必须是不可变类型(如字符串、整数、元组等),而值可以是任意类型。
4. Dictionary (字典)
字典是由键值对组成的集合,常用于存储需要通过键访问值的场景。
创建字典
d = {'name': 'Alice', 'age': 25, 'job': 'engineer'}
empty_dict = {} # 空字典
你也可以通过 dict()
函数创建字典:
d = dict(name='Alice', age=25, job='engineer')
访问字典中的值
print(d['name']) # 访问键 'name' 对应的值
print(d.get('age')) # 使用 get() 方法访问键 'age' 对应的值
如果访问的键不存在,get()
返回 None
,而直接使用 []
会抛出 KeyError
异常。
print(d.get('address', 'Not Found')) # 如果键不存在,返回默认值
修改字典中的值
d['age'] = 26 # 修改已有的键对应的值
d['address'] = 'New York' # 添加新的键值对
删除字典中的元素
del
语句:删除指定键的键值对pop(key)
:删除指定键的键值对并返回其值popitem()
:删除并返回字典中的一对键值对(随机选择)
del d['job'] # 删除键 'job' 和它对应的值
print(d.pop('address')) # 删除 'address' 并返回它的值
字典的方法
keys()
:返回字典中所有的键values()
:返回字典中所有的值items()
:返回字典中的所有键值对(作为元组的集合)update()
:更新字典,添加新键值对或修改已有的键值对clear()
:清空字典
print(d.keys()) # 返回字典中的所有键
print(d.values()) # 返回字典中的所有值
print(d.items()) # 返回字典中的所有键值对
d.update({'job': 'developer', 'city': 'Beijing'}) # 更新字典
print(d)
d.clear() # 清空字典
字典的遍历
你可以遍历字典的键、值或键值对:
# 遍历字典的键
for key in d:
print(key)
# 遍历字典的值
for value in d.values():
print(value)
# 遍历字典的键值对
for key, value in d.items():
print(f"{key}: {value}")
字典的优点
- 字典是通过键值对存储数据的,因此可以根据键快速查找值,时间复杂度为 O(1)。
- 字典中的键是唯一的,适用于需要快速查找、更新、删除的场景。
- 对于需要快速访问大量数据并且能够通过唯一标识符(键)索引的数据集,字典是最优选择。
示例代码
# 创建字典
person = {'name': 'Bob', 'age': 30, 'job': 'teacher'}
# 访问字典
print(person['name']) # 输出: Bob
print(person.get('age')) # 输出: 30
print(person.get('salary', 'Not Available')) # 输出: Not Available
# 修改字典
person['age'] = 31
person['address'] = 'London'
# 删除元素
del person['job']
removed_value = person.pop('address')
# 遍历字典
for key, value in person.items():
print(f"{key}: {value}")
总结
- Tuple (元组):不可变,用于保存不可修改的、有序的集合。
- List (列表):可变,有序,适用于需要频繁修改数据的场景。
- Set (集合):无序,不重复,适用于需要快速查找、去重、进行集合运算的场景。
- Dict (集合):字典是一个无序的、可变的键值对集合,通过键快速查找对应的值,适用于需要高效映射和存储数据的场景。