一、python高级数据类型简介

  • 计算机是可以做数学计算的机器,因此计算机程序理所当然可以处理各种数值,但是计算机能处理的远不止数值,还可以处理文本、图像、音频、视频等各种各样的数据,在Python中,能够直接处理的数据类型有:数字、字符串、列表、元组、字典等。

二、序列

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

  • 在Python中存在三种内置的序列类型:字符串、列表、元组

  • 序列优点:可以支持索引和切片的操作

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

三、字符串操作

字符串下标会越界,但是切片不会

1.切片

  • 切片:截取字符串其中的一段内容,可以根据下标获取序列对象的任意【部分】数据

  • 切片语法[起始下标;结束下标;步长]也就是[start;end;step],step默认是1

  • 切片结束的内容不包括结束下标对应的数据,前闭后开,步长是指间隔几个下标获取一个字符

data_name="linran"
print(data_name[1:4])#左闭右开
print(data_name[1:])#从第2个字符到最后一个
print(data_name[:3])#从第一个到第3个
print(data_name[3:1:-1])#倒序输出,-号表示方向,从右边往左边输出

2.字符串常用方法

所有方法都是通过字符串变量名.方法()进行使用

capitalize()

#首字母变大写

isalnum()

#判断是否是数字和字母

islower()

#判断是否是小写

swapcase()

#大写变小写,小写变大写

endswith/startswith()

#是否x结束或开始

isalpha()

#判断是否是字母

join()

#循环取出所有值用**去连接

lstrip/rstrip/strip()

#移除左/右/两侧空白

find()

#检测x是否在字符串中

isdight()

#判断是否是数字

lower/up()

#大小写转换

split()

#切割字符串

title()

#把每个单词首字母变成大写

replace(old,new,count=None)

#old被换字符串,new替换字符串,count换多少个,无count表示全部替换

count()

#统计出现的次数

  • 通过索引获取字符

test="linran"
print(type(test))
print('获取第一个字符%s'%test[0])
for item in test:print(item,end=" ")
  • capitalize() #首字母变大写

name="linran"
print("姓名首字母变成大写%s"%name.capitalize())
  • lstrip/rstrip/strip() #移除左/右/两侧空白

name="   linran   "
print("不去除空格%s"%name)
print("去除两边空格%s"%name.strip())
print("去除左边空格%s"%name.lstrip())
print("去除右边空格%s"%name.rstrip())
  • a=name,两者指向的是同一个字符串对象

name="   linran   "
a=name #在此只是把name的内存地址复制给了a,也就是这两个玩意指向的是同一个对象
print("a内存地址%d"%(id(a)))
print("name内存地址%d"%(id(name)))
  • find()与index() #检测x是否在字符串中

data_name="linran"
print("r在%s中的下标%d"%(data_name,data_name.find('r')))
#可以查找目标对象在序列对象中的位置,如果不存在,则返回为-1
print("n在%s中的下标%d"%(data_name,data_name.index('n')))
#可以查找目标对象在序列对象中的位置,如果不存在,则报错
  • endswith/startswith() #是否x结束或开始

data_name="linran"
print("{}是否是以l开头:{}".format(data_name,data_name.startswith('l')))
print("{}是否是以n结尾:{}".format(data_name,data_name.endswith('n')))
  • lower/up() #大小写转换

data_name="linran"
print(data_name.upper())
data_name="AL"
print(data_name.lower())

四、列表

1.什么是列表

  • list:是python中非常重要的数据结构,是一种有序的数据集合,可以随时添加和删除其中元素

  • 特点:

  1. 支持增删改查

  1. 列表中的数据是可以变化的【数据项可以变化,内存地址不会改变】

  1. 用[]来表示列表类型,数据项之间用逗号来分割,注意:数据项可以是任何类型的数据

  1. 支持索引和切片操作

2.列表常用方法

3.列表常用方法

  • len()函数

lin=[1,2,3,"林然"]
print(type(lin))#输出数据类型
print(len(lin))#len函数可以获取到列表对象中的数据个数
str="I Love LinRan"
print(len(str))#同样也适用于字符串
  • 切片

list0=['linran',123,48,'lin',True]
print(list0)#输出所有元素
print(list0[1:3])#切片使用,输出第2个到第三个元素
print(list0[2:])#输出第三个到最后一个元素
print(list0[::-1])#倒序输出,从右往左输出
print(list0*2)#重复输出2次,相当于对列表中的元素进行输出

结果:

  • append()函数

list0=['linran',123,48,'lin',True]
print('追加之前的列表',list0)#输出所有元素
list0.append(['ll','12'])
print('追加之后的列表',list0)#输出所有元素
list0.append(8888)
print('追加之后的列表',list0)#输出所有元素

结果:

  • insert()函数

list0=['linran',123,48,'lin',True]
print('追加之前的列表',list0)#输出所有元素
list0.insert(1,"我在第2个数据之前插入了数字1")#插入操作需要指定位置插入
print(list0)
  • extend()函数:扩展函数

list0=['linran',123,48,'lin',True]
list2=list(range(10))#强制转换为list对象
list0.extend(list2)#扩展列表,将list2中的元素放入list0中,等于批量增加
print(list0)

结果:

  • 修改操作

list0=['linran',123,48,'lin',True]
print('修改之前的列表',list0)#输出所有元素
list0[0]=1
print('修改之后的列表',list0)

结果:

  • 删除操作-del

list1=list(range(1,20))
print(list1)
#del list1[0] 代表删除列表中的第1个元素
del list1[0]
print(list1)
#del list1[1:3] 通过切片批量删除
del list1[1:3] #删除第2个-第3个元素
print(list1)
  • remove 移除指定元素

list1=list(range(1,20))
list1.append(10)
print(list1)
list1.remove(10) #删除列表中第一个值为10的元素
print(list1)

结果

  • pop函数

list1=list(range(1,20))
print(list1)
list1.pop(0)#可以移除指定位置的元素
print(list1)
  • index(value,start,end)

list1=list(range(1,20))
print(list1.index(2,0,5))#代表查找从下标0到4中值为1的数据下标

五、元组

    • 什么是元组

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

  1. 不可变

  1. 用()创建元组类型,数据项用逗号分隔

  1. 可以是任何类型

  1. 当元组中只有一个元素时,要加上逗号,不然解释器会当做整型来处理

  1. 同样可以支持切片操作

2.元组基本操作

  • 元组的创建

tupleA=('linra',89,9.99,False,[1,2])
print(type(tupleA))
print(tupleA)
  • 元组的查询:采用切片处理

tuple0=('linra',89,9.99,False,[1,2])
for item in tuple0:print(item,end=" ")
print(tuple0[2])#通过下标来求取
print(tuple0[1:3])#通过切片来取
print(tuple0[::-1])#倒序取
print(tuple0[-3:-1:])#倒数第三个到倒数第二个
print(tuple0[::-2])#每间隔一个取一次
  • 可以对元组中的列表里面的数据项修改

tuple0=('linra',89,9.99,False,[1,2])
print(tuple0)
print(type(tuple0[4]))
tuple0[4][0]=5
print(tuple0)

结果:

  • count函数

tuple1=(1,1,2,1,2,1,4)
print(type(tuple1))
print(tuple1.count(1))#统计1在元组中出现的次数

结果:

六、字典

    • 什么是字典

字典:也是python中重要的数据类型,字典是有键值对组成的集合,通常使用健来访问数据,效率特别高,和List一样,支持对数据的添加、修改和删除操作

特点:

  1. 不是序列类型,没有下标的概念,是一个无序的键值集合,是内置的高级数据类型

  1. 用{}来表示字典对象,每个键值对用逗号分隔

  1. 键 必须是不可变的类型【元组、字符串】,值可以是任意类型

  1. 每个键必定是唯一的,如果存在重复的键,后者会覆盖前者

2.字典中常用的方法

  • 创建

#创建时放入数据方式一
dict0={"school":'湖南工商大学','major':"计算机科学与技术"}
#添加字典数据方式二
dict0['linran']='林然'#增加方式,其中linran为键,林然为值,即key:value
dict0['age']=18
dict0['pos']='学生'
print(dict0)
print(len(dict0))#数据项长度
  • 查找&修改&获取:通过键进行操作

#创建时放入数据方式一
dict0={"school":'湖南工商大学','major':"计算机科学与技术"}
#添加字典数据方式二
dict0['name']='林然'#增加方式,其中linran为键,林然为值,即key:value
dict0['age']=18
dict0['pos']='学生'
print(dict0['school'])#通过键获取对应的值,因为键是唯一的
  • 修改

dict0['name']="焦迈奇"#通过键进行修改
print('过键进行修改',dict0['name'])
#update可以增加也可以修改
dict0.update({'name':'林然2号'})
  • 获取

print("通过update进行修改",dict0['name'])
#获取所有的键
print('获取所有的键',dict0.keys())
#获取所有的值
print('获取所有的值',dict0.values())
#获取所有的数据项,包括键和值
print('获取所有的数据项,包括键和值',dict0.items())
for key,value in dict0.items():print('%s==%s'%(key,value))
  • 删除

dict0={"school":'湖南工商大学','major':"计算机科学与技术",'age':18,'name':'林然'}
print(dict0)
del dict0['school'] #仍然是通过键进行删除
print(dict0)
dict0.pop('age')
print(dict0)

结果:

  • 排序:按照ASCII码进行排序

dict0={'name':'林然',"school":'湖南工商大学','major':"计算机科学与技术",'age':'18'}
print(dict0)
#如何排序,按照key进行排序
#d[0]代表以key进行排序
print(sorted(dict0.items(),key=lambda d:d[0]))
#按照value排序,类型要一致
print(sorted(dict0.items(),key=lambda d:d[1]))

结果:

七、共有方法

1.共有方法类型

2.共有方法操作

  • 合并操作 +

strA='湖南工商大学'
strB='林然'
#字符串合并
print(strA+strB)
#列表合并
listA=list(range(10))
listB=list(range(11,20))
print(listA+listB)
#元组合并
tupleA=(1,2,5)
tupleB=(7,8,9)
print(tupleA+tupleB)

结果:

  • 复制操作 *

strA='湖南工商大学'
#字符串复制
print(strA*3)
#列表复制
listA=list(range(10))
print(listA*3)
#元组复制
tupleA=(1,2,5)
print(tupleA*3)
  • in 对象是否存在

strA='湖南工商大学'
#字符串中是否存在
print('湖'in strA)
#列表是否存在
listA=list(range(10))
print(2 in listA)
#元组是否存在
tupleA=(1,2,5)
print(5 in tupleA)

结果:

八、小结

Python学习Day3-高级数据类型相关推荐

  1. Python入门篇-高级数据类型集合(set)和字典(dict)

    Python入门篇-高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.集合(set) 1>.集合的特点 约定set 翻译为集合c ...

  2. Python学习教程:数据类型—字符串大总结

    Python学习教程:数据类型-字符串大总结 1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串 ...

  3. python 复制dict_Python高级数据类型之字典、集合【明哥陪你学Python-六】

    上一篇我们简单对Python的基础数据类型做了说明和讲[Python高级数据类型之列表.元组],本篇我们继续针对Python的数据类型进行高级数据类型的介绍. 我们来先看一张图表: 字典(dict) ...

  4. Python学习笔记简单数据类型之数字

    1.整数: 在Python中可以对整数进行加减乘除以及取模运算,具体代码如下: #整数数据类型学习#加 i = 2 + 3; print(i);#减 i = 3 - 2; print(i);#乘 i ...

  5. Python学习笔记简单数据类型之字符串

    1.字符串: (1).字符串就是一系列字符,串起来形成的一种简单数据类型.在Python中,用引号括起来的都是字符串,包括单引号,双引号,其中字符串可以灵活的运用起来,字符串中可以包括引号和撇号,示例 ...

  6. Python学习 10 - 基本数据类型小练习

    个人学习总结笔记如有不足和错误欢迎指教谢谢 1.执行 Python 脚本的两种方式         1.进入python直接打命令         2.让python运行1.py 2.简述位.字节的关 ...

  7. Python学习笔记--组合数据类型

    组合数据类型 集合 序列 字符串类型 元组类型 列表类型 字典 集合 集合的定义 使用{}或set()函数. 如:A={"python","hello,world&quo ...

  8. 银角大王 python_小猿圈python学习-细讲数据类型-列表

    第一章我们大概介绍了列表的基本用法,本节我们学习下 定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 再回顾下列表的特点: 1.可存放多个值 2.按照从左到右的顺序定义列表元素 ...

  9. 潭州教育-Python学习笔记@基本数据类型:元祖字典

    Python基本数据还有元祖和字典 元祖(tuple)是Python的基本数据类型,用()表示,元素之间用','隔开,元祖一旦创建,就不能改变 In [45]: s = ('Stone','Stone ...

  10. python学习笔记之数据类型(二)

    上一篇博客,小波介绍了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法. 一.数据类型是何方神圣? 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当 ...

最新文章

  1. Flask rst 文档转换为html格式文件
  2. 生物学重复吗?还有技术重复?
  3. 在刚刚结束的ACL 2019上,知识图谱领域都发生了哪些大事?
  4. IDEA项目搭建七——使用Feign简化消费者端操作
  5. Qt文档阅读笔记-ToolBar QML Type
  6. android fragment 嵌套,Fragment嵌套Fragment时遇到的那些坑
  7. 玩转 SpringBoot 2.x 整合 Mybatis
  8. postgre ~模糊查询慢解决方式
  9. android camera 拍照流程图
  10. Java中的恒等于号怎么输入_Java---java基础语法03---运算符
  11. 快手短视频去水印方法
  12. 软件测试你的简历是这样的吗?
  13. Umi-—前端应用框架(Umi基础)
  14. 国内首款、完全自主、基于云架构的三维CAD平台——CrownCAD(皇冠CAD)
  15. netty 学习笔记(一)
  16. 以stc15w408as为核心,基于gsm的红外报警技术报告
  17. HFSS 快速建立微带线
  18. 怎么提高国外服务器速度?
  19. verilog的时钟分频与时钟使能
  20. 白骨精写给孙悟空的信

热门文章

  1. 为什么我们不能坚持?
  2. 树莓派使用USB摄像头和motion实现监控
  3. 微信小程序的基本操作
  4. Centos7 Snapper快照备份
  5. 世界上有10种人,一种是懂二进制的人,一种是不懂二进制的人。
  6. 实验吧——安全杂项之“Snake”详解
  7. CodeLite 16.0可以编译通过,但是在编辑器界面会显示找不到标准库头文件
  8. 关于刷微信投票的js代码
  9. Cygwin warning: could not find /tmp, please create! 问题
  10. rpmbuild php,linux RPM打包时出错,求助!!!