Python入门基础(3)--高级数据类型(字符串/列表/元组/字典)

Python入门基础(3)--高级数据类型(字符串/列表/元组/字典)_第1张图片

python高级数据类型(python可以处理类型有数字、字符串、列表、元组、字典等)

Contents

  1. 字符串及常用方法
  2. 列表及常用方法
  3. 元组
  4. 字典及常用方法
  5. 共有操作

序列:在python中,序列是一组按照顺序排列的值【数据集合】

在python中存在三种内置的序列类型:(字典、集合不属于序列)

  1. 字符串
  2. 列表
  3. 元组

序列的优点:可以支持索引和切片的操作(切片是指截取字符串中的其中一段内容。切片使用语法:[起始下标:结束下标:步长] 切片截取的内容不包含结束下标对应的数据步长指的是隔几个下标获取一个字符

切片的高级特性:可以根据下标来获取序列对象的任意部分数据【支持字符串/列表】

切片语法结构:[start:end:step] step默认1 左闭右开)

print(strMsg[2:])#第二个不写,表示到最后
print(strMsg[:3])#0可以省略掉
print(strMsg[::-1])#倒叙输出,负号表示方向,从右往左遍历

*下标会越界,切片不会

序列的特征:第一个正索引为0,指向的是左端,第一个索引为负数的时候,指向的是右端

字符串及常用方法:

  1. capitalize()    #首字母变大写
  2. endswith/startswith()    #是否x结束/开始
  3. find()    #检测x是否在字符串中(返回数字是对应的索引值,没有找到目标返回值为-1,和index很像)
  4. isalnum()    #判断是否是字母和数字
  5. isalpha()    #判断是否是字母
  6. isdigit()    #判断是否是数字
  7. islower()    #判断是否是小写
  8. join()    #循环取出所有值用xx去连接
  9. lower/upper    #大小写转换(所有字母)
  10. swapcase    #大写变小写,小写变大写
  11. lstrip/rstrip/strip    #移除左/右/两侧空白(删除是暂时的,除非将修改后的结果存回到变量中)
  12. split()    #切割字符串
  13. title()    #把每个单词的首字母变成大写
  14. replace(old,new,count=None)    #old被换字符串,new替换字符串,count换多少个,无count表示全部替换
  15. count()    #统计出现的次数
  16. index()    #检测字符串中是否包含子字符串,显示下标值,没有找到会报异常,不同于find
  17. +      #“+”用于合并字符串
  18. \t     #添加制表符
  19. \n    #添加换行符(制表符与换行符可以同时使用)
  20. *      #复制字符串

*index如果没有找到对象的数据,便会报异常,而find函数不会,找不到就返回

*字符串也是不可变的,如果重新赋值,会开辟新的存储空间

*单引号或双引号表示字符串都可以,但要注意,字符串中有单引号时,表示字符串的符号应该选择双引号,否则系统会判断不清楚

*a=b #将b的值赋值给a(赋值的是相同的内存地址) #是对一个内存地址的引用,他两是在一个内存地址

列表(list):python中非常重要的数据结构,是一种有序的数据集合

用for循环可以将列表中的元素一个一个取出,取完后退出循环

特点:

  1. 支持增删改查
  2. 列表中的数据是可以变化的【数据项可以变化,内存地址不会改变】
  3. 用 [ ] 来表示列表类型,数据项之间用逗号来分割,注意:数据项可以是任何类型的数据
  4. 支持索引和切片来进行操作
  5. 鉴于列表通常包含多个元素,通常给列表指定一个表示复数的名称(如letters,digits或names)

列表及常用方法:

  1. append 在列表后面追加元素(最后边加入)
  2. count 统计元素出现的次数
  3. extend 扩展,相当于批量添加
  4. index 获取指定元素索引号
  5. insert 在指定位置插入  需要新元素的索引和值:(列表名.insert(索引值,新元素))
  6. pop 删除最后一个元素(未指定索引),也可根据索引移除,可接着使用它的值
  7. del 删除已知索引的元素,不可再接着使用它
  8. remove 移除左边找到的第一个元素,根据值移除
  9. reverse 反转列表,不是按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序,其是永久性的修改列表元素的排列顺序,但是随时可调整回原来的排序顺序,只需再次调用reverse方法
  10. sort 列表排序(永久性修改) reverse=True 倒序----参数;例如cars.sort(reverse=True)
  11. sorted 列表排序(暂时修改,原始未变)reverse=True倒叙---参数;例如print(sorted(cars))
  12. len 确定列表的长度

* 可以对任何列表里的元素调用上述的字符串方法,例如使用title()让元素的格式更整洁

例如:print(bicycle[0].title())

*将索引指定为-1时,可让python返回最后一个列表元素,适用于列表长度不知,想输出最后一个元素,以此类推,-2输出倒数第二个元素,-3输出倒数第三个元素;仅当列表为空时,会报错

*修改列表的元素值,直接使用索引并赋新的值即可

*使用排序操作时,需要保证所有的值都是小写的

print(list*2)#连续输出两次数据
#删除操作
listB=list(range(10,50))
print(listB)
del listB[1:3] #批量删除多项数据(del后边是空格)
print(listB)
#移除操作:pop&remove
listB.remove(20)#移除指定的元素
print(listB)
listB.pop(1)#移除指定的项,不同于remove,参数是索引值,而remove移除的是具体的值

数值列表

函数range()可用于生成一系列数字,是左闭右开,range(1,5)不会输出数字5

range(起始值,终止值,步长)

输出数字列表,需要list(range(1,5))

数值列表的常用方法:

min   #数字列表的最小值

max  #数字列表的最大值

sum  #数字列表所有数值的总和

元组:是一组不可变的序列,在创建之后不能做任何修改

特点:

  1. 不可变
  2. 用小括号 ( ) 来创建元组类型,数据项用逗号来分割
  3. 可以是任何的类型(可以嵌套列表,例如[11,22,33])
  4. 当元组中只有一个元素时,要加上逗号,不然后解释器会当作整形来处理 (例:tupleB=('1',),不然解释器会当作整型来处理)
  5. 同样可以支持切片操作
  6. 使用方法同上
*对元组中的列表类型的数据可以进行修改
*重复对一个元组赋值,得到的内存空间也不同,因为其不可修改,所以新建了一个内存空间去保存元组

字典可以存储任意对象,是以键值对的形式创建的{‘key’:'value'}利用大括号包裹着,通常使用键来访问数据,效率非常高,和list一样,支持对数据的添加删除修改,字典里的键(key)不能重复,值(value)可以重复,键(key)只能是不可变类型,如数字,字符串,元组,字典的值可以是任何对象,可以是数字,字符串,列表乃至字典

特点

  1. 不是序列类型 没有下标的概念,是一个无序的 键值组合,是内置的高级数据类型
  2. 用 { } 来表示字典对象,每个键值对用逗号分割
  3. 键 必须是不可变的类型【元组、字串符】 值可以是任意的类型
  4. 每个键必定是唯一的,如果存在重复的键,后者会覆盖前者

字典常用方法

  1. 修改元素   字典名['键值名']=新的值
  2. 新增元素
  3. 删除元素
  4. 统计个数
  5. 获取键:keys  用for循环取出每个key值
  6. 获取值:values
  7. 获取键值对
  8. 删除指定键   pop('健')删除指定键/del语句(永远消失),注意两种的使用语句不太一样
  9. sort 列表排序(永久性修改) reverse=True 倒序----参数;例如cars.sort(reverse=True)
  10. sorted 列表排序(暂时修改,原始未变)reverse=True倒叙---参数;例如print(sorted(cars))
  11. len 确定列表的长度

*字典不可以用索引,因此也不可使用切片操作

*键值对的存储顺序和添加顺序或遍历时的返回顺序不同,Python不关心键值对的添加顺序,而只关心键和值之间的关联

*可以存储多个对象关于同一信息的值

*多行字典,注意使用方式, 统一缩进4格,花括号对齐,每一行要加上逗号,同时最后一个键值对后面也要加上逗号,为以后在下一行添加键值对做好准备

favourite_languages = {

       'jen': ''python,

       'sarah': 'c',

       'edward': 'ruby',

       'phil': 'python',

       }

#如何创建字典
dictA={"pro":'艺术','school':'北京电影学院'}#每一项就是一个键值对,通过:连接
print(type(dictA))
dictA['name']='李易峰'#[]里的是健,=后边的是值
dictA['age']=30
dictA['pos']='歌手'
#添加字典的数据
print(dictA['name'])#通过键获取对应的值
#修改键对应的值
dictA['name']='谢亭丰'
或者dictA.update({'age':32})
dictA.update({'height':180})#update可以用来增加和修改
print(dictA)
#获取所有的键
print(dictA.keys())/for key(变量名可变) in 字典名.keys():#这里变量名存储遍历结果#因为遍历字典会默认遍历所有的键,因此,入伏哦将keys()去掉,输出将不变
#使用keys做列表
if ‘erin’ not in dict.keys():##方法ksys()并非只能用于遍历,实际上,它返回一个列表,其中包含字典中所有的键,因此可用于核实信息
#获取所有的值
print(dictA.values())/for values(变量名可变) in 字典名.values():#这里变量名存储遍历结果
#获取所有的数据项,包括键和值
print(dictA.items())/for key,value(变量名可变) in 字典名.items():#这里变量名存储遍历结果
#删除操作
del dictA['name']#删除指定的键,也可以通过pop来操作
dictA.pop['age']
#字典实现排序,按照key排序,字母通过asc码比较排序,d[0]代表key
print(sorted(dictA.items(),key=lambda d:d[0]))/for key in sorted(dict.keys())#因为keys相当于返回一个列表,加了一个sorted直接对其排序
#根据key或者value,谁有意义根据谁排序
#字典实现排序,按照value排序
print(sorted(dictA.items(),key=lambda d:d[1]))
#对字典的值去重
for name in set(dict.values()):#set也是一种数据类型
#要注意比较的值类型是否相同,不相同需要改为一致的

公用方法:

  • 合并操作:两个对象相加操作,会合并两个对象
  • 复制:对象自身按指定次数进行+操作
  • in判断元素是否存在:判断指定元素是否存在于对象中(返回布尔数值)/not in 判断不存在 
#共有方法的操作+,*,in
strA='人生苦短'
strB='我用python'
print(strA+strB)
print(strA*3)
print('生' in strA)#对象是否存在

你可能感兴趣的:(Python,python)