列表
序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。
- 列表中的元素是有顺序的。
- 列表是可变的。
- 列表可以包含不同类型的元素。例如,一个列表可以同时包含整数、浮点数、字符串甚至是其他列表。
- 列表可以动态地增加其大小。当添加新元素时,列表会自动调整其内部容量。
li = [1, 2 , 3, 4, 5]
列表方法
append() 方法:在列表末尾追加元素。
del 语句:删除元素 del li[1]。
clear(): 移除列表中的所有元素。
copy(): 返回一个浅拷贝的列表。
count(x): 返回元素 x 在列表中出现的次数。
extend(iterable): 将 iterable 中的所有元素添加到列表末尾。
index(x[, start[, end]]): 返回元素 x 在列表中的索引位置。如果提供了可选参数 start 和 end,则在指定范围内查找。
insert(i, x): 在索引 i 处插入元素 x。
pop([i]): 移除并返回索引为 i 的元素,默认为最后一个元素。
remove(x): 移除列表中第一个值为 x 的元素。
reverse(): 反转列表中的元素。
sort(key=None, reverse=False): 对列表元素进行排序,可以根据 key 函数进行自定义排序,并可以选择是否反转排序顺序。
元组
元组(Tuple)是 Python 中另一种常用的数据结构。与列表类似,元组也是一种序列类型。
元组定义方式
tupe = (1, 2, 3, 4, 5)
tupe = 1, 2, 3, 4, 5(括号可以省略)
t = (1,) (单个元素需要加逗号才是元组)
元组的特点
- 不可变性:
元组是不可变的,这意味着一旦创建了元组,就不能修改它的内容。不能向元组中添加或删除元素,也不能修改元组中的元素 - 有序性:
元组中的元素是有顺序的,每个元素都有一个确定的位置。这个位置由索引表示,索引从 0 开始。 - 异质性:
元组可以包含不同类型的元素。例如,一个元组可以同时包含整数、浮点数、字符串甚至是其他元组或列表。 - 索引访问:
可以通过索引来访问元组中的元素。正向索引从 0 开始,负向索引从 -1 开始,表示元组的最后一个元素。 - 切片操作:
元组支持切片操作,可以获取元组的一部分。切片操作使用冒号分隔的索引范围,例如 tuple[start🔚step]。 - 内置方法:
虽然元组是不可变的,但仍然提供了一些内置方法,如 count() 和 index(),用于操作元组。
元组方法
count(x):返回元素 x 在元组中出现的次数。
index(x[, start[, end]]):返回元素 x 在元组中的索引位置。如果提供了可选参数 start 和 end,则在指定范围内查找。
t = (1, 2, 3, 2, 4, 2)
print(t.index(2)) # 输出:1
print(t.index(2, 2, 5)) # 输出:3
字典
字典(Dictionary)是 Python 中一种非常重要的数据结构,它是一种可变的、无序的容器类型,用于存储键值对(key-value pairs)。
字典中的每个元素都由一个键和对应的值组成,键必须是不可变的类型(如字符串、数字或元组),而值可以是任意类型。
字典的创建方式
d = {‘key1’: ‘value1’, ‘key2’: ‘value2’}
d = dict(key1=‘value1’, key2=‘value2’)
d = dict([(‘key1’, ‘value1’), (‘key2’, ‘value2’)])
字典的特点
- 键值对:
每个元素包含一个键和一个对应的值。键是唯一的,但值可以重复。 - 无序性:
字典中的元素没有固定的顺序。在 Python 3.7 及之后版本中,字典会保持插入顺序,但这并不意味着它是有序的,因为这种顺序依赖于实现细节。 - 可变性:
字典是可变的,可以随时添加、删除或修改元素。 - 键的唯一性:
字典中的键必须是唯一的。如果尝试插入具有相同键的新元素,旧值将被新值替换 - 键的不可变性:
键必须是不可变的数据类型,如字符串、数字或元组。列表和其他可变类型不能作为键。
字典的内置方法
clear():清空字典中的所有元素。
d.clear()
copy():
返回字典的一个浅拷贝。
new_dict = d.copy()
fromkeys(seq[, value]):
创建一个新的字典,其中包含 seq 中的键,所有键的值均为 value(默认为 None)。
new_dict = dict.fromkeys(['key1', 'key2'], 'default')
get(key[, default]):
返回指定键的值,如果键不存在,则返回 default(默认为 None)。
d.get('key1', 'default')
items():返回字典中的键值对视图。
for key, value in d.items():
print(key, value)
keys(): 返回字典中的所有键
for key in d.keys():
print(key)
values(): 返回字典中的所有值
for value in d.values():
print(value)
pop(key[, default]):移除指定键的元素并返回其值。如果键不存在,则返回 default(默认抛出 KeyError)。
d.pop('key1', 'default')
popitem():移除并返回最后一个插入的键值对(任意一个键值对,如果字典为空则抛出 KeyError)。
d.popitem()
setdefault(key[, default]):如果键在字典中存在,则返回对应的值;否则,将 default 设置为该键的值,并返回 default。
d.setdefault('key4','default')
update([other]):将 other 中的键值对更新到当前字典中。如果存在相同的键,则覆盖原来的值。
集合
集合(Set)是 Python 中的一种内置数据结构,它存储的是无序且不重复的元素。集合中的每个元素都是唯一的,这意味着集合不允许有重复的元素。
集合的特点
- 无序性:集合中的元素没有固定的顺序。这意味着你不能通过索引来访问集合中的元素。
- 不重复性:集合中的元素必须是唯一的,不允许有重复的元素。
- 可变性:集合是可变的,可以添加或删除元素,但不能修改元素(因为集合中的元素本身是不可变的)。
- 元素类型:集合中的元素必须是不可变类型,如数字、字符串、元组等。列表等可变类型不能作为集合的元素。
创建集合的方式
s = {1, 2, 3}
s = set([1, 2, 3])
集合的操作
集合支持多种数学上的集合操作,如并集、交集、差集等。
# 创建集合
s1 = {1, 2, 3}
s2 = {3, 4, 5}
# 并集(union)
union_set = s1.union(s2)
print("Union:", union_set) # 输出:{1, 2, 3, 4, 5}
# 交集(intersection)
intersection_set = s1.intersection(s2)
print("Intersection:", intersection_set) # 输出:{3}
# 差集(difference)
difference_set = s1.difference(s2)
print("Difference:", difference_set) # 输出:{1, 2}
# 对称差集(symmetric_difference)
symmetric_difference_set = s1.symmetric_difference(s2)
print("Symmetric Difference:", symmetric_difference_set) # 输出:{1, 2, 4, 5}
集合的内置方法
add(element):向集合中添加一个元素。
s.add(6)
remove(element):从集合中移除指定的元素。如果元素不存在,则抛出 KeyError。
s.remove(1)
discard(element):从集合中移除指定的元素。如果元素不存在,则不做任何操作。
s.discard(7)
pop():随机移除并返回集合中的一个元素。如果集合为空,则抛出 KeyError。
s.pop()
clear():清空集合中的所有元素。
s.clear()