数据结构的类型:
数据类型:
列表
##创建列表
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)
<<<<<<<<<<<