Day05新手小白学python
第五节 Python的高级数据类型,主要包括字符串、列表、元组以及字典及其相应的用法
目录
前言
本文介绍了Python的高级数据类型,主要包括字符串、列表、元组以及字典及其相应的用法
一、字符串及常用方法
1、字符串的常用方法
序列:在python中,序列是一组按照顺序排列的值【数据集合】,在python中,有三种内置的序列类型:字符串、列表、元组;序列的优点:可以支持索引和切片的操作,特征:第一个正索引未零指向的是左端,第一个负索引未零指向的是右端。
test='python' # 字符串就是一个序列,可以进行遍历操作
print(type(test))
print(test[1])
for item in test:
print(item,end=" ")
name='peter'
print('姓名首字母转换大写%s'%name.capitalize())
a=' hello '
print('去除字符串左右两边的空格%s'%a.strip())
#复制字符串
b=a # 在此只是把a对象的内存地址赋给了b
print(b)
print('打印a的内存地址%d',id(a)) # id()函数 可以查看一个对象的内存地址
print('打印b的内存地址%d',id(b))
dataStr='I love pythonpn'
# print(dataStr.find('q')) # find() 可以查找目标对象在序列对象中的值,若没找到就返回-1
# print(dataStr.index('q')) # index() 检测字符串中是否包含子字符串,返回的是下标值,若没找到就异常
print(dataStr.startswith('I')) #判断开头是否以I结尾
print(dataStr.endswith('o')) #判断结尾是否以O结尾
print(dataStr.lower()) # 转换成小写
print(dataStr.upper()) # 转换成大写
print('c'.join(dataStr)) #“将字符串dataStr中的每个成员以字符'c'分隔开再拼接成一个字符串”,输出结果为:ic clcocvcec cpcyctchcocn
2、切片操作
切片是指截取字符串中的一段内容。切片使用语法:[起始下标:结束下标:步长],切片截取的内容不包含结束下标对应的数据,步长指的是隔几个下标获取一个字符,默认步长是1.
StrMsg='hello world'
# slice[start:end:step]
# print(StrMsg[0])
print(StrMsg[2:5]) # 左闭右开 start<=value<end
print(StrMsg[2:]) # 第三个字符到最后
print(StrMsg[:3]) # 1-3 StrMsg[0:3]= StrMsg[:3]
print(StrMsg[::-1]) # 倒序输出 负号表示方向 从右边往左边
二、列表及常用方法
列表list是一种有序的集合,可以随时添加和删除其中的元素。特点:支持增删改查;列表中的数据是可以变化的,但内存地址不变;用[ ]表示数据类型,数据项用逗号分隔,注意:数据项可以是任何类型的数据;支持索引和切片来进行操作
li=[1,2,3,"你哈皮"]
print(len(li)) # len()函数可以获取列表对象或字符串中的数据个数
# 查找
listA=['abcd',785,12.23,'qiuzhi',True]
print(listA) # 输出完整的列表
print(listA[0]) # 输出第一个元素
print(listA[1:3]) # 输出1-2个元素
print(listA[2:]) # 从第二个元素开始到最后所有的元素
print(listA[::-1]) # 从右向左开始输出
print(listA*3) # 输出多次列表中的数据
# 增加
listA.append(888) # 输出结果是:['abcd', 785, 12.23, 'qiuzhi', True, 888]
listA.append(['fff','ddd']) # 追加时不限定类型,可以进行列表嵌套 输出结果是:['abcd', 785, 12.23, 'qiuzhi', True, ['fff', 'ddd']]
listA.insert(1,'插入的数据') #插入操作,需要指定位置插入
print(listA)
rsData=list(range(10)) # 强制转化为list对象
listA.extend(rsData) # 拓展 等于批量添加
listA.extend([1,2,3,4])
print(listA)
# 修改
listA[0]="peter"
print(listA)
# 删除
del listA[1:3] # 删除多项数据,[]中的是下标,从零开始
del listA[0] # 删除列表中的第一个元素
listA.remove(785) # 移除指定的元素,参数是具体的数据值
listA.pop(0) # 移除指定的项,参数是索引值
print(listA)
print(listA.index(12.23,0,4)) # 返回的是索引下标,index(查找的元素,查找起始下标,终止下标)
三、元组
元组:是一种不可变的序列,在创建之后不能做任何修改。特点:不可变,用( )创建元组类型,数据项用逗号分割;可以是任何的类型;当元组中只有一个类型时,要加上逗号,否则解释器会当作整形来处理;支持切片操作。
# 元组的创建 不能进行修改(运行之后了不能进行修改,除非重新赋值)
tupleA=()
tupleA=('adbc',89,9.12,'peter',[11,22,33]) #从左往右是0,1,2,3,4 但从右往左是-1,-2,-3,-4,-5
# 上述两次赋值的tupleA内存地址是不一样的
tupleA[0]='python' #错误的,会报错
tupleA[4][0]=7548 # 可以对元组中的列表类型的数据进行修改
print(tupleA)
# 元组的查询
for item in tupleA:
print(item,end=" ")
print(tupleA[2:4])
print(tupleA[::-2]) # 表示反转字符串,每隔两个去一次,隔两个时要包含本次数据,打印的结果是:([11, 22, 33], 9.12, 'adbc')
print(tupleA[-2:-1:]) # 输出结果是:('peter',),元组中只有一个数据,要加逗号
print(tupleA[-4:-2:]) # 输出结果是:(89, 9.12),tupleA(小的数:大的数:步长)
tupleB=("1")
print(type(tupleB)) # 此时为字符串类型 <class 'str'>
#元组中只有一个数据,要加逗号才是元组类型
tupleB=(1,)
print(type(tupleB)) # 此时为元组类型 <class 'tuple'>
tupleC=tuple(range(10))
print(tupleC) # 输出结果 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
print(tupleC.count(8)) # 统计元素在元组中出现的次数
print(tupleC.index(8)) # 查找指定元素在元组中的下标索引
四、字典及常用方法
字典可以存储任意对象。字典是以键值对的形式创建的{’key‘:’value‘}利用大括号包裹着。字典中找某个元素时是根据键、值2个元素组成。字典的键不能重复,值可以重复。通常使用键来访问数据,和list一样,支持数据的增删改查操作。特点:不是序列类型,没有下标的概念,不能使用索引,是python中内置的高级数据类型;用{ }来表示字典对象,每个键值对用逗号分隔;字典的键只能是不可变类型,如数字、字符串、元组,值可以是任意类型;每个键必定是唯一的,如果存在重复的键,后者会覆盖前者。
# # 如何创建字典
dictA={"pro":'艺术专业','school':'北电'}
# 添加字典数据
dictA['name']='peter' # name为key键,peter为value值
dictA['age']='30'
dictA['pos']='歌手'
print(len(dictA)) # 数据项长度
print(dictA) # 输出完整的字典
print(dictA['name']) #通过键获取对应的值
dictA['name']="lisa" #修改键对应的值
dictA.update({'height':180})#可以添加或更新
print(dictA)
# 获取所有的键
print(dictA.keys())
# 获取所有的值
print(dictA.values())
# 获取所有的键值对
print(dictA.items()) # 键值对是元组形式
for key,value in dictA.items():
print("%s==%s" %(key,value))
# 删除操作
del dictA['name'] #通过指定键进行删除
dictA.pop('age') #通过指定键进行删除
print(dictA)
# 如何对字典进行排序,按照key排序
print(sorted(dictA.items(),key=lambda d:d[0]))
# 按照value排序
print(sorted(dictA.items(),key=lambda d:d[1]))
五、共有操作
1、合并操作+:两个对象相加操作,会合并两个对象。适用于字符串、列表、元组。
#字符串合并
strA='人生苦短'
strB='我用python'
#列表合并
listA=list(range(10))
listB=list(range(11,20))
print(listA+listB)
2、复制:对象自身按指定次数进行+操作,适用于字符串、列表、元组。
# 复制 *
print(strA*3) # 输出结果:人生苦短人生苦短人生苦短
print(listA*3)
3、in判断元素是否存在:判断指定元素是否存在于对象中,适用于字符串、列表、元组、字典。
# in 判断对象是否存在 结果是一个bool值
print('人'in strA) # True
print(9 in listA) # True
dictA={'name':"peter"}
print("name" in dictA) # 字典判断key键值 输出True
总结
本文仅仅简单介绍了Python的高级数据类型,主要包括字符串、列表、元组以及字典及其相应的用法