python数据结构学习笔记

数据结构的类型:

数据类型:

列表

##创建列表
mylist1=list(1,2,3,4,['hello','hi'])
mylsit2=['hello']                   #hello字符串会被拆成一个个字符
mylist2=[]                          #创建空列表
##索引访问提取
mylist1[3]                          #索引第四个元素
mylist1[-1]                         #索引最后一个元素

##切片操作提取
mylist1[start:end:step]
mylist1[1:7:1]                      #提取第一个和第八个之间的元素,步长为1
mylist1[-1:-20:-1]

##列表反转
mylist[::-1]

##列表的常用函数和方法
mylist.append('hello')              #在列表尾部追加元素
mylist.extend(mylist2)              #在列表尾部追加多个元素/合并列表
mylist.insert(9,'hello')            #在第十位上插入
del mylist[-1]                      #del指分离对象和变量名,这里指删除最后一位
mylist.pop(3)                       #获取并删除第四个元素
mylist.remove('hello')              #删除第一次出现的hello元素
mylist[0]="hello"                   #直接修改元素
mylist.copy()                       #创建副本,创建一个新的地址和对象,但内容一样
myiIst.index("hello")               #查找队列中第一个hello出现的位置
mylist.count("A")                   #计算列表里面A出现的次数
sorted(mylist)                      #使用sorted对列表进行排序,不改变列表
mylist.sorted()                     #使用sort排序,改变列表内容
mylist.sort(reverse=True)           #sort的倒叙输出
len(mylist)                         #使用函数len获取长度
[1,2,3]+[4,5,6]                     #列表相加
[1,2,3,4]*2                         #列表乘法,结果为:[1,2,3,1,2,3]

元组

元组和列表非常相似
:::info
相同: 都是有序元素集合,并且可以包含任何元素
:::
:::info
不同: 元组不可变,不可修改(增删改查)
:::

##创建元组
mytuple=(1,2,3,"hello",[hi,4])       			##使用圆括号
mytuple=1,2,3,'hello'                           ##省略圆括号
mytuple=tuple([1,2,3,'hello'])                  ##列表转换为元组
mytuple=tuple(1,2,3,'hello')    				##直接创建元组

由此可以很直观的看出:元组采用" ( ) “,列表采用”[ ]"

##元组的索引
mytuple[1]                           			##元组的索引与列表一致
mytuple[0:10:1] 								##元组的切片与列表一致
##元组解包
A,B,C,D=mytuple									##把元组分解到ABCD上
A,B,C,D=1,2,3,4									##利用元组解包进行多变量赋值
##元组常用的方法
tuple.count										##计数(均与列表一致,不再赘述)
tuple.index										##第一个出现位置检索
tuple.Sorted									##排序
len												##长度
+												##合并
*												##重复自我合并

字典

字典属于映射类型的数据结构,元素就是键所对应的值。字典包含任意类型的数据结构作为元素的集合,各元素都有与之对应的唯一的键,字典通过访问键来访问对应的元素。
字典中的键必须是不可变的数据类型对象,如数字,字符串,元组等 ,键和值的映射关系表现为:key:value
:::tips
双值子序列:
指只包含两个元素的序列,如 [‘name’,‘age’], (18,“boy”), ‘ab’
:::

创建字典的几种方式:

#直接创建
dict={key1:value1,key1:value2,key3:value3}  ##采用花括号直接创建,以逗号隔开键值
dict={key1:value1,key1:value2}              ##对于重复,字典会取最后重复出现的键值,这里是value2
#使用dict创建
dict_1=dict{[('a',1),('b',2),('c',3)]}      ##使用dict函数转换列表对象为字典:必须为双值子序列

对字典的操作

#直接提取字典元素
dict_1[a]                     #结果为a对应的值:1,如果键不存在会报错

#测试键是否存在
>>>'a' in dict_1                           
True                          #返回结果为bool类型的

#get方法提取
dict_1.get('a')               #格温不受影响,get在这里就是格温,如果键不存在会正常返回None


字典常用方法

#字典的常用方法
dict_1[d]='5' 						##这里采用了键值访问赋值,此处在原有的基础上增加了d
dict_1.update(dict_2)   			##键值对的合并,把两个字典中的键值进行了合并
del dict_1['d']        				##del删除字典中的元素
dict_del=dict_1.pop("c")            ##pop删除字典中的元素
dict_1.clear()                      ##清空字典内容
dict_1["c"]='6'						##键值的修改,直接赋值给键


查询和获取字典元素信息

(1)keys: 用于获取字典中的所有键
(2)values: 用于获取字典中的所有值
(3)items: 得到字典中的所有键值对

all_keys=dict_1.keys()
all_values=dict_1.values()
all_itmes=dict_1.items()

集合

创建集合

#可变集合
myset1={'a','b','c','d'}                ##直接创建集合
myset1=set(['a','b','c'])               ##使用set创建,调用列表
myset1=set()                               ##创建空集合
#不可变集合
myset2=frozenset('a','b','c','d')       ##frozenset来创建不可变的集合

集合的运算

A|B  or  A.union(B)                      #并集
A&B  or  A.intersection(B)          	 #交集
A-B  or  A.difference(B)           		 #差集
A^B  or  A.symmetric_difference(B)  	 #异或集

集合关系常用的函数和符号

<=  or  issubset()                        #一个集合是否为另一个集合的子集
<										  #一个集合是否为另一个集合的真子集
>=  or  issuperset()					  #一个集合是否为另一个集合的超集
>										  #一个集合是否为另一个集合的真超集 

集合常用的函数和方法

set.add										#在可变集合里添加一个元素
set.update									#可以合并两个可变集合
set.pop									    #在可变集合中弹出删除一个元素,空元素会出错
set.remove									#删除可变集合
set.clear									#清除全部可变集合内的元素
in								        	#查询元素是否在集合内
len									        #获取元素个数
set.copy									#复制可变集合的内容创建一个副本

附录

str.split(str="", num=string.count(str))#分隔符
# str :分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
# num :分割次数。默认为 -1, 即分隔所有
str.replace(' ', '-')#字符串替换字符,“ ”替换为“-”
str.index('1')#查找字符1的起始位置
str.strip()#字符串的规整操作,去掉之间的空格
str.strip(string)#字符串的规整操作,去掉之间的string字符串
len(str)

#字符串的遍历
>>>>>>>>
index=0
while index<len(str):
	print(str[index])
    index+=1
#or
for i in str:
    print (i)
           <<<<<<<<<<

#字符串的合并
>>>>>>>>>
str1 = input("输入第一个字符串:")
str2 = input("输入第二个字符串:")
print(str1+str2)
#or
1 =['a','b','c']
str.join(1)
print(1)
           <<<<<<<<<<<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值