0
点赞
收藏
分享

微信扫一扫

高级数据类型

唯米天空 2022-02-06 阅读 85

高级数据类型

1.常用字符串操作

(1)首字母大写

name='peter'
print('首字母大写%s'%name.capitalize())

首字母大写Peter

(2)去除空格

去除两边空格

a='   hello   '
print(a)
b=a.strip()
print(b)

hello
hello

去除左边空格

c=a.lstrip()
print(c)

hello

去除右边空格

d=a.rstrip()
print(d)

hello

(3)复制字符串

print('a的内存地址%d'%id(a)) #id函数,查看对象的内存地址
e=a
print('e的内存地址%d'%id(e))
print(e)

a的内存地址2213459939952
e的内存地址2213459939952

(4)查找

data='I love Python'
print(data.find('P')) #若找到,返回下标
print(data.find('M')) #若没找到,返回-1
print(data.index('P'))#若找到,返回下标
#print(data.index('M'))#若没找到,报错

7
-1
7

ValueError: substring not found

查找开头、结尾

print(data.startswith('I')) #若是以I开头,则返回bool类型True
print(data.startswith('l')) #若不是,则返回False
print(data.endswith('n')) #若是以n结尾,则返回bool类型True
print(data.endswith('o')) #若不是以n结尾,则返回bool类型False

True
False
True
False

(5)大小写转换

print(data.upper())
print(data.lower())

I LOVE PYTHON
i love python

(6)字符串的切片操作

print(data[2:5]) #左闭右开
print(data[2:]) #从下标2一直到最后
print(data[:3]) #等效于print(data[0:3])
print(data[::-1]) #倒序,从右往左遍历
print(data[3:0:-1]) #第一个索引为大于等于0的数,按[0,1,2..]排序,第一个索引为小于0的数按[...,-2,-1]排序,第三个数为正则从左往右,为负则从右往左。

lov
love Python
I l
nohtyP evol I
ol

2.常用列表操作

(1)列表定义

li1=[] #空列表
li=[1,2,3,'hi']
print(len(li)) #打印列表中的对象个数
strA='jkl'
print(len(strA)) #打印字符串中字符的个数
print(li*2)#多次输出列表中的数据

4
3
[1, 2, 3, ‘hi’, 1, 2, 3, ‘hi’]

(2)追加数据

li.append([111])
print(li)

[1, 2, 3, ‘hi’, [111]]

(3)在指定位置插入数据

li.insert(1,'插入')
print(li)

[1, ‘插入’, 2, 3, ‘hi’, [111]]

(4)强制类型转换:转为列表

li2=list(range(5))
print(li2)

[0, 1, 2, 3, 4]

(5)将列表内容批量添加到另一个列表中

li.extend(li2) #与append不同:append将整个列表添加,expend将列表的内容取出来再添加。
print(li)

[1, ‘插入’, 2, 3, ‘hi’, [111], 0, 1, 2, 3, 4]

(6)列表修改

li[0]='nihao'
print(li)

[‘nihao’, ‘插入’, 2, 3, ‘hi’, [111], 0, 1, 2, 3, 4]

(7)列表删除和查找操作

del li[0] #移除对应下标的数据项
print(li)
del li[1:3] #批量删除
print(li)
li.remove(4) #一处对应数据项
print(li)
li.pop(1) #移除对应下标的数据项
print(li)
print(li.index(3)) #查找对应数据项的索引
print(li.index(3,2,6)) #在对应下标范围[2,6)能查找到对应数据项的索引
print(li.index(3,0,3)) #在对应下标范围[0,3)不能查找到对应数据项的索引

[‘插入’, 2, 3, ‘hi’, [111], 0, 1, 2, 3, 4]
[‘插入’, ‘hi’, [111], 0, 1, 2, 3, 4]
[‘插入’, ‘hi’, [111], 0, 1, 2, 3]
[‘插入’, [111], 0, 1, 2, 3]
5
5

ValueError: 3 is not in list

3.常用元组操作

(1)元组定义

tupleA=() #空元组
print(id(tupleA)) 
tupleA=('jkl',9.15,456,[111,222],456)
print(id(tupleA)) #两个元组的地址不同,不是在同一个元组上的修改

2141959110720
2141959798672

(2)元组的查询

print(tupleA[1]) #取出元组中的一个值,不是元组类型
print(tupleA[1:3]) #切片取出元组的一部分,仍是元组类型
print(tupleA[1:2]) #元组只有一个元素,要加“,”

9.15
(9.15, 456)
(9.15,)

(3)元组的修改

tupleA[2]=789 #元组不能修改,否则会报错
print(tupleA)

TypeError: ‘tuple’ object does not support item assignment

可以对元组的列表数据修改

tupleA[3][0]=147#可以对元组中的列表数据修改
print(tupleA)

(‘jkl’, 9.15, 456, [147, 222], 456)

(4)统计数据项出现的次数

print(tupleA.count(456))

2

4.常用字典操作

(1)字典定义及添加字典操作

dict1={} #空字典
dictA={'PRO':'艺术'} #创建字典
#添加字典数据 key:value
dictA['name']='zqz'
dictA['age']='30'
dictA['pos']='singer'
print(dictA)

{‘PRO’: ‘艺术’, ‘name’: ‘zqz’, ‘age’: ‘30’, ‘pos’: ‘singer’}

(2)获取数据项长度

print(len(dictA))

4

(3)通过键获取对应的值

print(dictA['name'])

zqz

(4)修改键对应的值

dictA['name']='y2j'
print(dictA)

{‘PRO’: ‘艺术’, ‘name’: ‘y2j’, ‘age’: ‘30’, ‘pos’: ‘singer’}

(5)获取所有的键和值

#获取所有的键
print(dictA.keys())
#获取所有的值
print(dictA.values())
#获取所有的键和值
print(dictA.items())

dict_keys([‘PRO’, ‘name’, ‘age’, ‘pos’])
dict_values([‘艺术’, ‘y2j’, ‘30’, ‘singer’])
dict_items([(‘PRO’, ‘艺术’), (‘name’, ‘y2j’), (‘age’, ‘30’), (‘pos’, ‘singer’)])

(6)字典的修改

dictA.update({'age':40}) #修改已有的键值
print(dictA)
dictA.update({'height':'170'}) #若没有,则添加
print(dictA)

{‘PRO’: ‘艺术’, ‘name’: ‘y2j’, ‘age’: 40, ‘pos’: ‘singer’}
{‘PRO’: ‘艺术’, ‘name’: ‘y2j’, ‘age’: 40, ‘pos’: ‘singer’, ‘height’: ‘170’}

(7)字典的删除

del dictA['name']#通过指定键删除
print(dictA)
dictA.pop('age')
print(dictA)

{‘PRO’: ‘艺术’, ‘age’: 40, ‘pos’: ‘singer’, ‘height’: ‘170’}
{‘PRO’: ‘艺术’, ‘pos’: ‘singer’, ‘height’: ‘170’}

(8)字典的排序

print(sorted(dictA.items(),key=lambda d:d[0])) #按键排序
print(sorted(dictA.items(),key=lambda d:d[1])) #按值排序

[(‘PRO’, ‘艺术’), (‘height’, ‘170’), (‘pos’, ‘singer’)]
[(‘height’, ‘170’), (‘pos’, ‘singer’), (‘PRO’, ‘艺术’)]

5.公用方法

(1)合并操作

stra='111'
strb='222'
print(stra+strb)

111222

(2)复制操作

print(stra*2)

111111

(3)in操作:查看对象是否存在,返回bool类型值

name='Peter'
print('P'in name)
print('o'in name)

True
False

举报

相关推荐

0 条评论