Python数据容器复习指南:期末冲刺必备
上期总结了Python中最基础的语法,本贴继续总结有关数据容器的细节。
回顾Python基础语法,辨析和C++等的不同~-CSDN博客文章浏览阅读659次,点赞9次,收藏16次。由于很多院校的计科尤其软工专业在本科期间会设置大量有关不同编程语言的语法基础课,虽然整体来看大同小异,但还是有些细节在不同语言有所差异。本贴旨在快速总结各编程语言的基础语法,以便在阅读较难的项目代码时由于不熟悉基础语法而寸步难行~https://blog.csdn.net/jsl123x/article/details/146453863?spm=1001.2014.3001.55015类数据容器分别是:列表、元组、字符串、集合、字典~
一.列表list
list1=[1,2,3]
list2=list()#空列表对象
列表内的每一个数据,称之为元素;每一个元素之间用逗号隔开~
list=[1319,"1319",[13,19]]
元素类型可以不同,且列表支持嵌套。
list=[1319,"1319",[13,19]]
i=0
while i<len(list):
print(list[i])
i+=1
Python中下标同样是从0开始,支持通过下标遍历列表:
list=[1319,"1319",[13,19]]
i=0
while i<len(list):
print(list[i])
i+=1
下标支持为负数,意味着逆向遍历。起始值为-1:
list=[1319,"1319",[13,19]]
i=-1
while i>=-len(list):
print(list[i])
i-=1
通过调用index方法可以查找某元素的下标:
list=[1319,"1319",[13,19]]
print(list.index(1319))
print(list.index("1319"))
通过insert方法可以在指定下标处插入元素:
list=[1319,"1319",[13,19]]
list.insert(0,1325)
print(list[0])
append方法可以将元素追加在列表的尾部:
list=[1319,"1319",[13,19]]
list.append("1325")
print(list[len(list)-1])
而extend方法允许将另一个容器追加到当前容器尾部:
list1=[1319,1325]
list2=["1319",[13,19]]
list1.extend(list2)
print(list1)
del函数可以删除指定下标的元素:
list1=[1319,1325]
del list1[0]
print(list1)
而pop函数可以将指定下标的元素弹出:
list1=[1319,1325]
i1=list1.pop(0)
print(i1)
remove则是通过值删除列表中的第一个匹配项:
list1=[1319,1319,1325]
list1.remove(1319)
print(list1)
count可以返回某一元素数量,len可以返回列表长度,而clear用于清空容器:
list1=[1319,1319,1325]
print(list1.count(1319))
print(len(list1))
list1.clear()
print(list1)
列表支持修改元素,通过赋值方式直接修改:
list1=[1319,1319,1325]
list1[1]=1317
print(list1)
二.元组
元组和列表同样可以封装多个不同类型的元素在内,但最大区别在于不能修改!
tuple1=(1,2)
tuple2=tuple()
强行修改会直接报错:
tuple1=(1,2)
tuple1[0]=3
如果元组只有一个元素,必须在末尾加逗号,不然括号只有优先级作用,不能构成元组:
tuple1=(1,)
tuple2=(2)
print(type(tuple1))
print(type(tuple2))
虽然不能直接修改元组内的元素,但如果元组内嵌套了列表,还是可以修改这个子元素的:
tuple1=(1,[1319])
tuple1[1][0]=1325
print(tuple1)
其他方法如len等,和列表高度相似,这里不多赘述~
三.字符串
字符串也是数据容器,和元组一样同样无法修改~
str1="1319"
str1[0]=2
除此之外,列表中的那些追加、移除等操作,字符串或者元组同样不能使用:
通过replace可以替换字符串,但实际上是得到了新的字符串:
str1="1319"
str2=str1.replace("1","2")
print(str1)
print(str2)
split可以将字符串分割为列表对象,内部参数为用来分割的符号:
str1="1319"
list1=str1.split(" ")
list2=str1.split("1")
print(list1)
print(list2)
strip实现规整操作,也即去掉前后的指定字符,参数为空则去掉空格:
str=" 1319 "
str.strip()
print(str)
str1=str.strip()
print(str1)
再次强调,和其他语言不一样——无论如何原字符串都不可能被修改,只是产生了新的字符串:
这里再补充一个新的概念——序列:
所谓的切片操作,即取出序列中的一部分:
str="1234567890"
str1=str[0:9:1] #左闭右开!
print(str1)
str2=str[1:10:2] #步长可以自由选择
print(str2)
四.集合
前三者都是有序的数据容器,即序列,而集合则不能保证集合内元素的顺序性:
set1={"aaa","bbb",1,2}
print(set1)
虽然集合不支持下标访问,但集合是可修改的:
set1={"aaa","bbb",1,2}
set1.add(3)
set1.remove(2)
print(set1)
取出两个集合的差集:
set1={"aaa","bbb",1,2}
set2={1,2,3}
set3=set1.difference(set2)
print(set3)
set3=set2.difference(set1)
print(set3)
主从性要掌握好哦——返回的是调用者有但被调用者中没有的集合:
两个集合取并集:
set1={"aaa","bbb",1,2}
set2={1,2,3}
set3=set1.union(set2)
print(set3)
交集:
set1={"aaa","bbb",1,2}
set2={1,2,3}
set3=set2.intersection(set1)
print(set3)
五.字典
同样为花括号,不过为键值对:
dict1={
"name":"thomas13",
"age":36,
"number":25
}
key值是不能重复的,可以用key访问value:
dict1={
"name":"thomas13",
"age":36,
"number":25
}
print(dict1["name"])
print(dict1["age"])
print(dict1["number"])
key值不一定是字符串,但一定不能是字典。同好keys方法可以将key全部得到:
dict1={
"name":"thomas13",
"age":36,
"number":25
}
keys=dict1.keys()
print(keys)
print(type(keys))
总结如下:
任何容器都可以转换为字符串;此外,字典转换为列表只能保留key值~
作者:Lyric群青