前言:数据结构不管在哪门编程语言之中都是非常重要的,因为学校的课程学习到了python,所以今天来聊聊关于python的数据结构使用。
1 #list列表的三种创建方式 2 #1.直接创建 3 lst = [1,2,3,4,5,"python"] 4 print("lst====",lst) 5 #2.通过list()方法来创建 6 lst2 = list([2,4,5,6,3]) 7 print("lst2=====",lst2) 8 #可以直接用range函数生成 9 lst3 = list(range(10)) 10 print("lst3=====",lst3) 11 #3.通过列表生成式来生成。 格式: 表达式 for 变量名 in range(100) 12 lst4 = [i**2 for i in range(1,5)] 13 print("lst4====",lst4)
1 lst = [1,2,3,4,5,"python"] 2 lst2 = [8,9,10] 3 #1.增加元素 4 #在列表中的末尾一个元素 5 lsts = lst.append(56) 6 print("在列表的末尾添加一个元素append(56)=====:",lst) 7 #在列表中的末尾添加多个元素,没有返回值 8 lst.extend(lst2) 9 print("在列表的末尾添加多个元素extend(lst2)=====:",lst) 10 #在指定位置添加一个元素 11 lst.insert(0,"hahaha") 12 print("添加了hahaha这个元素以后========",lst)
#2.删除列表 #remove()方法 删除指定的元素,一次只删除一个元素,重复元素只删除第一个,元素不存在则报错 lst.remove(5) #lst.remove("ggg") #ValueError: list.remove(x): x not in list print("移除5这个元素后=======",lst) #pop删除一个指定索引上的函数,指定索引不存在则直接报错,如果不指定索引,则默认删除列表最后一个元素 lst.pop(0) print("删除第0位元素后====",lst) #clear清空列表
lst.clear() print("clear()清空列表=====",lst) #del删除列表 del lst print(lst)
#3.修改列表元素: lst[0] = 88 print(lst)
#4.查询列表元素 注意,索引可以为正数,也可以为复数!这是python中的特点
number = lst[0]
print(number)
#index(元素名)传入元素名字,获取它的索引
print("python在列表中的索引是:",lst.index("python"))
列表的其他操作
1 lst = [1,2,3,4,5,"python"] 2 3 #切片表达式:可以进行列表的所有增删查操作 4 # 格式: [起始位置:结束位置:步长] 起始位置和结束位置都可以不写 5 #查询指定位置的元素 6 lst2 = lst[:4] 7 print(lst2) 8 #删除指定位置的元素 9 lst[5:] = [] 10 print(lst) 11 #修改指定位置的元素 12 lst[:5] = [8,8,8,8,8] 13 print(lst) 14 15 #列表生成式 格式:表达式 for i in range() 16 lst2 = [i**2 for i in range(10)] 17 print("使用列表生成式lst2:",lst2) 18 19 #判断元素是否在列表中 in not in 20 print(‘a‘ in lst2) 21 print(‘a‘ not in lst2) 22 23 #排序,倒序方法 24 lst2.reverse() 25 print("使用列表的倒序reverse方法后:",lst2) 26 lst2.sort() 27 print("使用列表的排序sort方法后:",lst2)
1.字典的的基本介绍
key:必须是可哈希的值,比如intmstring,float,tuple,但是,list,set,dict不行
value:任何值
键若重复字典中只会记该键对应的最后一个值
在dict中是根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。
2.字典的基本操作
1 #字典的创建 2 dict2={} 3 dict1 = {"name":"zhangsan","age":23} 4 print(dict1) 5 dict3 = dict(name="jack",age=23,sex="男") 6 print(dict3) 7 8 #新增 9 dict3[‘happy‘] = True 10 #删除 del dict3[‘name‘] 删除一个键值对 11 #dict3.clear() #直接删除整个字典元素 12 #获取值有两种方式:1.直接通过键来获取 2.通过get方法来使用 13 print(dict3[‘age‘]) 14 print(dict3.get(‘sex‘)) 15 print(dict3.get(‘money‘,999999999)) #后面跟着的数字是默认值,如果该键不存在那么就使用默认值
3.字典的其他操作
#常用方法:keys() values() items() 分别获取字典的所有键,值,键值对 dict3_keys = dict3.keys() print(type(dict3_keys)) print(dict3_keys) print(list(dict3_keys)) print("获取所有的值:",dict3.values()) print("将字典中所有值转换为列表:",list(dict3.values()))
#字典生成式 zip(键的列表,值的列表)
foods = [‘apple‘,‘bnana‘,‘origin‘]
prices=[2.3,453,456]
d = {food:price for food,price in zip(foods,prices)}
print(d)
#判断元素是否在字典中
isTrue = ‘names‘ in dict3
print(isTrue)
1.元组介绍
元组Tuple,用法与List类似,但元组中的值一经初始化,就不能修改,没有List中的append(), insert(), pop()等修改的方法,只能对元素进行查询
2.元组基本操作
1 #元组的创建方式 2 #直接赋值创建 3 t = ("python","love","me") 4 #通过内置函数创建 5 t2 = tuple(("i","love","python")) 6 print(t,type(t)) 7 print(t2,type(t2)) 8 #注意:只包含一个元素的元组必须有一个逗号,否则会被当成字符串。 9 t3 = ("tuple") 10 print(t3,type(t3)) 11 t4 = ("tuple",) 12 print(t4,type(t4))
3.其他操作
1 #元组的遍历,由于元组是可迭代对象,所以可以用for in 遍历 2 for i in t: 3 print(i,type(i))
1.集合介绍
2.集合基本操作
1 #集合的创建方式 2 sets1 = set() #创建一个空集合 3 print(sets1,"sets1") 4 sets2 = set(range(10)) #创建一个0-9的集合 5 print(sets2,"sets2") 6 sets3 = set(list([1,2,3,4456,5,5,65,123])) #将给定的列表转换为集合 7 print(sets3,"sets3") 8 #判断元素是否位于集合当中 in not in 9 isTrue = 3 in sets3 10 print(isTrue) 11 print(000 not in sets3) 12 13 14 #添加元素 15 #若一次只添加一个元素 16 sets3.add("里斯") 17 print(sets3,"sets3") 18 #一次添加多个元素 使用update方法 19 sets3.update({100,1200,5456,4655,89,5,123}) 20 print(sets3,"sets3") 21 22 #删除元素 23 sets3.discard("dfs") #如果指定删除的元素不存在不抛出异常,推荐使用! 24 print(sets3) 25 #remove()一次删除一个指定的元素,如果元素不存在那么就抛出异常 26 sets3.pop() #默认删除集合中第一个元素 27 sets3.pop() 28 print(sets3,"sets3") 29 #clear() 清空整个集合
3.其他操作
#判断两个集合之间的关系 s1 = {i for i in range(10)} s2 = {i for i in range(5,15)} s3 = {i for i in range(100,102)} #1.判断两个集合是否相等 == != print(s1 == s2) #2.判断一个集合是否为另一个集合的子集 print(s1.issubset(s2)) #3.判断一个集合是否为另一个集合的超集(父集合) print(s2.issuperset(s1)) #4.判断两个集合是否含有交集 print(s1) print(s2) print(s1.isdisjoint(s2)) print(s2.isdisjoint(s3)) #集合中的数学运算 交并差 对称差 s1 = {i for i in range(10)} s2 = {i for i in range(5,15)} s3 = {i for i in range(100,102)} print(s1) print(s2) print(s1 & s2) #两个集合的交集 print(s1 | s2) #两个集合的并集 print(s1 - s2 ) #s1与s2的差集 print(s1 ^ s2) #s1与s2的对称差集 也就是并集 - 交集 # 集合生成式 注意!只有可变序列才有生成式
最后给大家分享一张图片,方便记忆!
原文:https://www.cnblogs.com/xy2559/p/14043149.html