Python数据结构归纳(学习笔记)

这篇博客是对Python数据结构的归纳,重点讲解了List、Set(集合,用于去重和关系比较)、Tuple(不可变元素序列)和Dict(无序键值对),并涵盖了切片操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python数据结构归纳

理顺一下python数据结构相关的知识,加深记忆

List


# 定义列表
list1 = [1, 2, 'a', 'b', '1c', '2d']

#切片
list1[1:3]
# [2, 'a']

# 更新
list1[2] = 'c'

# 删除
del list1[2]
# [1, 2, 'b', '1c', '2d']


# 组合
list1 + [1, 2, 4]
#[1, 2, 'a', 'b', '1c', '2d', 1, 2, 4]

# 重复
["P"]*3
# ["p", "p", "p"]

# 判断是否存在
'2d' in list1
#True

# 迭代
for x in list1:
    print(x)

# 函数

# 长度
len(list1)

# 列表元素最大值
max(list1)

# 列表元素最小值
min(list1)

# 方法

# 在末尾添加元素
list1.append(obj)

# 统计元素出现次数
list1.count(obj)

# 获得某一元素在列表中出现的次数
list1.index(obj)

# 将对象插入指定位置
list1.insert(index, obj)

# 删除列表中某一位置的元素,返回值
list1.pop(index)

# s删除列表中第一个匹配值
list1.remove(obj)

# 逆序排列元素
list1.reverse()

# 排序

# 两种
sorted(list1) # 返回一个排序好的对象,原来的list不变
list1.sort()  # 不会返回对象,改变原有的list。
# 默认是升序排序
# 下面是降序
list1.sort(reverse=True)

set

set(集合)是一组无序不重复的元素集。
可以进行去重和关系比较(交,差,并)。

# 定义
a = set("abx")
# {'a', 'x', 'b'}
b = set(["a", "b", "c"])
# {'a', 'c', 'b'}

# 基本操作

# 添加元素
a.add("y")

# 添加多项
a.update(['z', 'v', 'k'])

#删除元素
a.remov('x')

# 集合运算

# 交集
a & b
#{'a', 'b'}

# 并集
a | b
# {'b', 'a', 'x', 'c'}

# 差集
a - b
# {'x'}

# 对称差集
a ^ b
# {"x", "c"}

# 去重
x = ["a", "b", "c", "a", "d"]
y = set(x)
# {"a", "b", "c", "d"}
x = [i for i in y]
# x = ["a", "b", "c", "d"]

# 长度
len(a)

# 判断是否存在
'x' in a

# 判断a中的每一个元素都在b中  
a.issubset(b) 
a >= b  
# False
a.issuperset(b)  


切片

a = "Python"

# 截取第一个字符
a[0]
# P

# 截取地2个字符到第4个字符之间的字符串[1, 3)
a[1:3]
# yt

# 截取第4个字符前的字符
a[:3]
# Pyt

# 截取倒数第二个字符前的字符
a[:-2]
#Pyth

# 以步长为2截取字符
a[::2]
# Pto

# 反转字符
a[::-1]
# nohtyP

Python数据结构归纳

List


# 定义列表
list1 = [1, 2, 'a', 'b', '1c', '2d']

#切片
list1[1:3]
# [2, 'a']

# 更新
list1[2] = 'c'

# 删除
del list1[2]
# [1, 2, 'b', '1c', '2d']


# 组合
list1 + [1, 2, 4]
#[1, 2, 'a', 'b', '1c', '2d', 1, 2, 4]

# 重复
["P"]*3
# ["p", "p", "p"]

# 判断是否存在
'2d' in list1
#True

# 迭代
for x in list1:
    print(x)

# 函数

# 长度
len(list1)

# 列表元素最大值
max(list1)

# 列表元素最小值
min(list1)

# 将列表转换为元组。
tuple(list1)

# 方法

# 在末尾添加元素
list1.append(obj)

# 统计元素出现次数
list1.count(obj)

# 获得某一元素在列表中出现的次数
list1.index(obj)

# 将对象插入指定位置
list1.insert(index, obj)

# 删除列表中某一位置的元素,返回值
list1.pop(index)

# s删除列表中第一个匹配值
list1.remove(obj)

# 逆序排列元素
list1.reverse()

# 排序

# 两种
sorted(list1) # 返回一个排序好的对象,原来的list不变
list1.sort()  # 不会返回对象,改变原有的list。
# 默认是升序排序
# 下面是降序
list1.sort(reverse=True)

set

set(集合)是一组无序不重复的元素集。
可以进行去重和关系比较(交,差,并)。

# 定义
a = set("abx")
# {'a', 'x', 'b'}
b = set(["a", "b", "c"])
# {'a', 'c', 'b'}

# 基本操作

# 添加元素
a.add("y")

# 添加多项
a.update(['z', 'v', 'k'])

#删除元素
a.remov('x')

# 集合运算

# 交集
a & b
#{'a', 'b'}

# 并集
a | b
# {'b', 'a', 'x', 'c'}

# 差集
a - b
# {'x'}

# 对称差集
a ^ b
# {"x", "c"}

# 去重
x = ["a", "b", "c", "a", "d"]
y = set(x)
# {"a", "b", "c", "d"}
x = [i for i in y]
# x = ["a", "b", "c", "d"]

# 长度
len(a)

# 判断是否存在
'x' in a

# 判断a中的每一个元素都在b中  
a.issubset(b) 
a >= b
# False
a.issuperset(b)  

Tuple

Tuple(元组)与列表类似,但是元组的元素不能修改。


# 定义
tuple1 = (1, 2, 3, "a", "b", "c")

# 创建新的元组
tuple3 = tuple1 + tuple2

# 元组不允许删除和修改元素 只能删除整个元组
del tuple1

# 比较两个元组元素。
cmp(tuple1, tuple2)

# 计算元组元素个数。
len(tuple)

# 返回元组中元素最大值。
max(tuple)

# 返回元组中元素最小值。
min(tuple)

dict

无序的键:值对(key:value 对)集合

# 定义
dict1 = {"name":"zhangsan", "age":20, "sex":"men"}

# 修改元素
dict1["age"] = 21

# 删除元素
del dict1["age"]

# 清空dict
dict1.clear()

# 删除dict
del dict1

# 比较两个字典元素
cmp(dict1, dict2)

# 计算字典元素个数,即键的总数
len(dict1)

# 输出字典可打印的字符串表示
str(dict1)

# 以列表返回可遍历的(键, 值) 元组数组
dict1.items()

# 返回指定键的值,如果值不在字典中返回default值
dict1.get(key, default=None)

# 把字典dict2的键/值对更新到dict里
dict1.update(dict2)

# 返回所有key
dict1.keys()

#返回所有值
dict1.values()

# 将两个list合成dict
keys = ['a', 'b', 'c']
values = [1, 2, 3]
dict1 = dict(zip(keys, values))

切片

a = "Python"

# 截取第一个字符
a[0]
# P

# 截取地2个字符到第4个字符之间的字符串[1, 3)
a[1:3]
# yt

# 截取第4个字符前的字符
a[:3]
# Pyt

# 截取倒数第二个字符前的字符
a[:-2]
#Pyth

# 以步长为2截取字符
a[::2]
# Pto

# 反转字符
a[::-1]
# nohtyP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值