文章目录
- python学习笔记-6. python常见的数据结构
- 前言
- 一、列表
- 1. 列表定义
- 2. 列表常用内置方法
- 3. 列表推导式
- 二、元组
- 1. 元组的定义
- 2. 元组的内置函数
- 三、集合
- 1. 集合的定义
- 2.集合的内置函数
- 四、字典
- 1. 字典的定义
- 2. 字典的内置函数
- 3. 字典推导式
- 总结
前言
常见数据结构:列表、元组、集合、字典学习笔记
一、列表 1. 列表定义
定义:python中可以通过组合一些值得到多种复合数据类型,其中列表是其中最常用的数据结构,列表通常用方括号括起,逗号分隔,一个列表可以包含不同类型的元素,但是通常建议使用同一类型的元素
2. 列表常用内置方法列表的常用内置方法:
- list.append(x): 在列表的末尾添加一个元素
- list.insert(i, x): 在给定位置添加一个元素,i代表元素位置索引,x为插入的元素
- list.remove(x): 删除值为x的第一个元素元素,x为元素值非索引
- list.pop([i]): 删除列表中指定位置的元素,并返回它,如果i为空则删除列表中最后一个元素
- list.sort(key=None, reverse=False): 对列表进行排序
- list.reverse(): 反转列表中的元素
关于内置方法的代码示例:
list_test = []
# append列表尾部添加元素
list_test.append('a')
list_test.append('b')
print(list_test)
# insert列表指定位置插入元素
list_test.insert(0, 'z')
print(list_test)
list_test.insert(1, 'x')
print(list_test)
# remove删除指定元素值,如果相同的值,则删除匹配到的第一个元素
# 添加相同元素x
list_test.append('x')
print(list_test)
list_test.remove('x')
print(list_test)
# 删除列表中指定位置的元素并返回,pop()参数为空时删除最后一个元素
m = list_test.pop(1)
print(m)
n = list_test.pop()
print(n)
# 排序列表元素,sort方法默认为升序排序,若果要进行降序,则sort中加入参数reverse = True
list_test1 = [1, 3, 2, 6, 4]
list_test1.sort()
print(list_test1)
# 反转列表
list_test1.reverse()
print(list_test1)
3. 列表推导式
定义: 列表推导式提供一个更简单创建列表的方法,常见的用法是把某种操作,用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或通过满足某些特定条件元素来创建子序列。
# 列表推导式,会根据循环执行语句,依次添加列表的元素,即每执行一次,在列表中添加一个元素,注意循环执行语句要放在for之前,空格间隔 # 最简单的列表推导式 list_test3 = [i**2 for i in range(4)] print(list_test3) # 稍微复杂的列表推导式,条件在for语句后面添加即可,即要执行的预期放在最前面 list_test4 = [i**2 for i in range(4) if i != 1] print(list_test4) list_test5 = [i*j for i in range(4) for j in range(4)] print(list_test5)二、元组 1. 元组的定义
元组使用()进行定义,元组的数据是不可改变的,通过解包,索引来访问元组
# 元组定义 tuple_test = (1, 2, 3) tuple_test1 = 1, 2, 3 print(tuple_test) print(tuple_test1) # 元组的不可变特性 # 元组可通过元组名称[index]来访问元素 print(tuple_test[0]) # 但是执行以下修改语句时会报错 tuple_test[0] = 2 # 但是当元组包含变量时是可以修改的,因为变量放的是内存指针,非具体的值,更改变量更改的并非内存地址,更改的是内存地址指向的值,所以可以更改 list_test = [1, 2] tuple_test2 = (1, 2, list_test) tuple_test2[2][0] = 'a' print(tuple_test2)2. 元组的内置函数
- tuple_test.count(a): 元组中参数出现的次数
- tuple_test.index(a): 元组中参数的对应索引值,如果有重复的元素,则index返回的值为参数第一次出现的索引
tuple_test = (1, 2, 3, 4, 1) print(tuple_test.count(1)) print(tuple_test.index(4))三、集合 1. 集合的定义
集合是由不重复元素组成的无序的集,基本用法包括成员检测和消除重复元素,使用{}或set()函数创建集合,如果要创建空集合只能用set不能使用{}
# 定义集合
a = {1, 2, 3}
b = set()
print(type(a))
print(type(b))
2.集合的内置函数
常用内置函数:
- set_test.union(set_test1): 集合求并集,合并两个集合的元素
- set_test.intersection(set_test1): 集合求交集
- set_test.difference(set_test1): 集合求差集,即返回前面集合有而后面集合没有的元素的集合
set_test = {1, 2, 3, 4, 5}
set_test1 = {4, 5, 6, 7, 8}
# union取并集
print(set_test.union(set_test1))
# intersection取交集
print(set_test.intersection(set_test1))
# difference求差集
print(set_test.difference(set_test))
同样集合也可以使用推导式进行创建
set_test = {i for i in "this is a testmsg"}
print(set_test)
集合使用场景不是很多,简单了解一下
四、字典 1. 字典的定义字典是以关键字为索引的,存储key=value形式的元素,可以使用{}直接定义,也可以使用dict()函数进行定义
# 注意使用{}进行定义字典时,key如果是字符串需要使用"",否则会报错
dict_test = {}
dict_test1 = {"a":1, "b":2}
# 使用dict()函数进行定义字典时,()中定义元素使用key = value的形式,不能使用key:value的形式
dict_test2 = dict(a = 1, b = 2)
print(dict_test)
print(dict_test1)
print(dict_test2)
2. 字典的内置函数
字典常用内置函数记录:
- dict_test.keys(): 返回字典的所有的key
- dict_test.values(): 返回字典的所有value
- dict_test.pop(“a”): 删除key为参数’'a"的元素,该函数返回删除元素的value值
- dict_test.popitem(): 随机删除一个元素,并返回这个元素
- dict_test.fromkey(tuple_test, test): 从列表获取元素为key和value,第一个参数为元组,元组元素为字典对应的key值,第二个参数为key对应的值
dict_test = {"a":1, "b":2, "c":3}
# keys获取所有key
print(dict_test.keys())
# valuse() 获取所有的value
print(dict_test.values())
# pop() 根据key删除元素
print(dict_test.pop("a"))
print(dict_test)
# popitem() 随机删除元素并返回
print(dict_test.popitem())
# fromkey(tuple_test, "test")
dict_test3 = {}
tuple_test = ("a", "b", "c")
dict_test4 = dict_test3.fromkeys((tuple_test), "test")
print(dict_test4)
3. 字典推导式
推导式写法都差不多,简单记录一下
dict_test = {i:i*2 for i in range(4)}
print(dict_test)
总结
- 列表定义及内置函数
- 元组定义及内置函数
- 集合定义及内置函数
- 元组定义及内置函数
- 推导式创建数据结构



