Python 数据容器

python 数据容器:列表、元组、字符串、集合、字典

一、列表

1、列表的定义

        变量名称 = []

        变量名称 = list()

        变量名称 = [变量1,变量2,.....]

        列表可以依次存储多个数据,也可以为不同的数据类型,支持嵌套。

2、列表的下标索引

        从前往后,编号从0开始递增

        从后往前,编号从-1开始递减

3、列表的常用操作

       ①查找

列表.index(元素)        #返回该元素的索引值

        ②插入

列表.insert(下标元素)        #在指定位置插入

列表.append(元素)                 #追加在尾部

列表.extend(其他的数据容器)        #将一系列的数据追加在尾部

        ③删除 

del 列表[下标]                

列表.pop(下标)        #删除并返回该元素

列表.pop()                #删除列表末尾元素

列表.remove                #删除某元素在列表中第一个匹配项

列表.clear()                # 清空列表

        ④统计数目

列表.count(元素)                #列表中某元素的数目

len(列表)        # 列表中所有元素的数目

         ⑤排序

列表.sort()                #对列表进行永久排序

列表.sort(reverse=True)                #对列表进行永久排序(反向)

列表.sorted()                #对列表进行临时排序

列表.sorted(reverse=True)                #对列表进行临时排序(反向)

 切片

即使用列表的一部分

列表[m:n]        #从列表下标索引m到n-1提取列表

列表[:n]        #从列表开头取到索引值为n-1

列表[n:]             #从列表索引值n开始取到列表末尾

列表[-n:]        #提取列表最后n个元素

列表[:]                #复制列表

 二、元组

不可变的列表

1、元组的定义

元组名 = ()                #空元组

元组名 = tuple()                #空元组

元组名 = (元素,)        #定义只包含一个元素的元组,逗号不能省

元组名 =(元素1,元素2,.........)

2、元组的特点

无法修改元组内元素的值,但元组内如果嵌套了列表,则可修改列表中的值

 无法修改元组内元素的值,但可以给表示元组的变量重新赋值

三、字符串

1、字符串的定义

字符串名='字符串'        #使用单引号定义

字符串名=''字符串''        #使用双引号定义

字符串名='''字符串'''        #使用三引号定义(可定义多行字符串)

2、字符串的特点

字符串是字符的容器,一个字符串可以存放任意数量的字符

同元组一样,字符串是一个无法修改的数据容器

字符串可以进行下标索引访问

3、字符串的常用操作

①查找

字符串.index(元素)        #返回该元素的起始位置的索引值(索引值从零开始)

str = "A and B"
value = str.index("and")   #value为2
 ②修改

注意:不是修改字符串的本身,而是得到一个新的字符串

# 把字符串A中所有的字符串1都替换成字符串2

字符串A.replace(字符串1,字符串2)        

 ③分隔

注意:按照指定字符串分割字符串,将字符串分为多个字符串,并存入列表对象中。字符串本身不变,而是得到了一个列表对象

字符串.split(分隔字符串)

④规整操作

字符串.strip()        #去前后空格

字符串.strip(字符串)        #去前后指定字符串 

str="12计算机科学与技术专业21"
print(str.strip("12"))        #"计算机科学与技术专业"

 上例中,需要格外注意的是,传入的字符串”12“,其实是按照单个字符进行移除,其中"1"和"2"都会被移除!!!!

⑤统计数目

字符串名.count("字符串")        #可返回某个字符或字符串在整个字符串里的数目

len(字符串名)                #字符串长度

 序列

指内容连接、有序,可使用下标索引的一类数据容器如:列表、元组、字符串

列表常用操作-----切片

切片:从一个序列中取出一个小序列

序列[起始下标:结束下标:步长]

表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列;

步长:表示每次跳过n-1个元素取值

当步长为负数时,即反向取值。起始下标和结束下标也要反向

(如[3:1:-1],即先取索引值为3的值,然后反向取值,取索引值为2的值,包前不包后,即取值结束)

str1="12计算机科学与技术专业21"
print(str1[3:1:-1])        #输出结果为:算计

#序列切片:从str1字符串中得到"计算机科学与技术专业"
str1="321,业专术技与学科机算计,56"

# 第一种方法:先进行倒序,再进行取值
str2=str1[::-1][5,11]

# 第二种方法: 先取值再进行倒序
str3=str1[5,11][::-1]

# 第三种方法: 用split分割,replace替换“去”为空,再进行倒序
str4=str1.split(",")[1].replace("去"."")[::-1]

四、集合

1、集合的特点

不允许重复元素,无序,不支持下标索引访问,不是序列,允许修改

不能使用while循环遍历,可以用for循环

2、集合的定义

集合名={元素1,元素2,......}

3、集合的常用操作

① 添加

集合名.add(元素)  

② 移除

#移除元素

集合名.remove(元素)

#从集合中随机取出一个元素并移除

集合名.pop()

③ 清空

集合名.clear()

④ 合并

# 将集合1和集合2合并,得到新的集合,集合1和集合2不变

集合1.unior(集合2)

⑤ 比较

#得到一个新集合(内含有集合1里存在的,但集合2中无的元素),原有的两个集合不变

集合1.difference(集合2)

# 在集合1中,删除和集合2中相同的元素,集合1被修改、集合2不变

集合1.difference_updata(集合2)

⑥ 统计数目

len(集合)

五、字典 

1、字典的性质

基于key检索value;键值对的key和value,可以是任意类型(key不能为字典类型)

字典中的key值不允许重复,重复添加相当于覆盖原有的数据

不能通过使用下标索引,而是通过key检索value

字典会保留定义时的元素排列顺序

2、字典的定义

字典名={key:value,key:value,....}

# 定义空字典

字典名={}

字典名=dict()

 3、字典的常用操作

① 新增/更新

字典名[key]=value

② 删除

字典名.pop(key)        #删除元素,并返回被删除的元素值

③ 清空

字典名.clear()         

del 字典名[key]

④ 获取全部的key值

字典名.keys()                #返回值是是列表类型

⑤获取全部的value值

字典名.values()                #返回值是列表类型 

⑤遍历

方法1:直接for循环

for key in 字典名:        

        print(f"{key}对应的value值是:{字典名.[key]}")   

 方法2: 先获取全部的key值

for key in 字典名.keys():

        print(f"{key}对应的value值是:{字典名.[key]}")

⑥  统计数目

len(字典)                # 计算字典中的元素数量

 数据容器总结

1、容器的通用操作

① 统计数目

len(容器名) 

② 最大/小值

max(容器名)

min(容器名)   

③ 转换

list(容器)                # 将给定容器转换为列表

str(容器)                # 将给定容器转换为字符串

tuple(容器)            # 将给定容器转换为元组

set(容器)                # 将给定容器转换为集合,会自动去重,无序

注意:

字典转换为其他类型时,除去str类型,都会丢失Value值 

字符串转换时,会将每个字符作为元素

④ 排序

sorted(容器)        # 正向排序(从小到大)

sorted(容器,[reverse=True])        # 反向排序(从大到小)

 注意:字符串的比较是按位比较,一位位比较,只要有一位大,那么整体就大

五类数据容器的比较

列表(list)元组(tuple)字符串(str)集合(set)字典(dict)
元素数量支持多个支持多个支持多个支持多个支持多个
元素类型任意任意字符任意

Key:Value

Key:除字典外任意类型

Value:任意类型

下标索引支持支持支持不支持不支持
重复元素支持支持支持不支持不支持
可修改性支持不支持不支持支持支持
数据有序
使用场景可修改、可重复的一批数据记录场景不可修改、可重复的一批数据记录场景一串字符串的记录场景可修改、不可重复的数据场景以Key检索Value的数据记录场景

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值