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