Python学习—(2)Python高级数据类型

高级数据类型

1.常用字符串操作

(1)首字母大写

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

首字母大写Peter

(2)去除空格

  • 去除两边空格
a = '   hello   '
print("a的值为:", a)
b = a.strip()
print("去除两边空格b的值为:", b)

a的值为: hello
去除两边空格b的值为: hello

  • 去除左边空格
c = a.lstrip()
print("去除左边空格c的值为:", c)

去除左边空格c的值为: hello

  • 去除右边空格
d = a.rstrip()
print("去除右边空格d的值为:", d)

去除右边空格d的值为: hello

(3)复制字符串

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

a的内存地址1419749899824
e的内存地址1419749899824
e的值为: hello

(4)查找

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

P的索引为: 7
M的索引为: -1
P的索引为: 7
ValueError: substring not found

  • 查找开头、结尾
print('字符串是否以I作为开头:', data.startswith('I')) # 若是以I开头,则返回bool类型True
print('字符串是否以l作为开头:', data.startswith('l')) # 若不是,则返回False
print('字符串是否以n作为结尾:', data.endswith('n')) # 若是以n结尾,则返回bool类型True
print('字符串是否以o作为结尾:', data.endswith('o')) # 若不是以n结尾,则返回bool类型False

字符串是否以I作为开头: True
字符串是否以l作为开头: False
字符串是否以n作为结尾: True
字符串是否以o作为结尾: 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('列表li的长度为:', len(li)) # 打印列表中的对象个数
strA = 'jkl'
print('字符串strA的长度为:', len(strA)) # 打印字符串中字符的个数
print('li多次输出的结果为:', li * 2) # 多次输出列表中的数据

列表li的长度为: 4
字符串strA的长度为: 3
li多次输出的结果为: [1, 2, 3, ‘hi’, 1, 2, 3, ‘hi’]

(2)追加数据

li.append([111])
print('追加数据后的列表数据li为:', li)

追加数据后的列表数据li为: [1, 2, 3, ‘hi’, [111]]

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

li.insert(1, '插入')
print('在指定位置插入数据后的列表数据li为:', li)

在指定位置插入数据后的列表数据li为: [1, ‘插入’, 2, 3, ‘hi’, [111]]

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

li2 = list(range(5))
print('强制类型转换后的列表数据li2为:', li2)

强制类型转换后的列表数据li2为: [0, 1, 2, 3, 4]

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

li.extend(li2) # 与append不同:append将整个列表添加, expend将列表的内容取出来再添加
print('将列表内容批量添加到另一个列表后的列表数据li为:', li)

将列表内容批量添加到另一个列表后的列表数据li为: [1, ‘插入’, 2, 3, ‘hi’, [111], 0, 1, 2, 3, 4]

(6)列表修改

li[0] = 'nihao'
print('将列表修改后的列表数据li为:', li)

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

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

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

将列表移除对应下标的数据项后的列表数据li为: [‘插入’, 2, 3, ‘hi’, [111], 0, 1, 2, 3, 4]
将列表批量删除后的列表数据li为: [‘插入’, ‘hi’, [111], 0, 1, 2, 3, 4]
将列表移除对应数据项后的列表数据li为: [‘插入’, ‘hi’, [111], 0, 1, 2, 3]
将列表移除对应数据项后的列表数据li为: [‘插入’, [111], 0, 1, 2, 3]
5
5
4

3.常用元组操作

(1)元组定义

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

tupleA的地址: 2644498006080
tupleA的地址: 2644498694032

(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的值为:', tupleA)

tupleA的值为: (‘jkl’, 9.15, 456, [147, 222], 456)

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

print('项456出现的次数', tupleA.count(456))

项456出现的次数 2

4.常用字典操作

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

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

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

(2)获取数据项长度

print("dictA的长度:", len(dictA))

dictA的长度: 4

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

print("通过键获取对应的值:", dictA['name'])

通过键获取对应的值: zqz

(4)修改键对应的值

dictA['name'] = 'y2j'
print("修改键对应的值后dictA:", dictA)

修改键对应的值后dictA: {‘PRO’: ‘艺术’, ‘name’: ‘y2j’, ‘age’: ‘30’, ‘pos’: ‘singer’}

(5)获取所有的键和值

print("dictA所有的键", list(dictA.keys()))
print("dictA所有的值", list(dictA.values()))
print("dictA所有的键和值", list(dictA.items()))

dictA所有的键 [‘PRO’, ‘name’, ‘age’, ‘pos’]
dictA所有的值 [‘艺术’, ‘y2j’, ‘30’, ‘singer’]
dictA所有的键和值 [(‘PRO’, ‘艺术’), (‘name’, ‘y2j’), (‘age’, ‘30’), (‘pos’, ‘singer’)]

(6)字典的修改

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

update修改后dictA: {‘PRO’: ‘艺术’, ‘name’: ‘y2j’, ‘age’: 40, ‘pos’: ‘singer’}
update修改后dictA: {‘PRO’: ‘艺术’, ‘name’: ‘y2j’, ‘age’: 40, ‘pos’: ‘singer’, ‘height’: ‘170’}

(7)字典的删除

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

通过指定键删除后的dictA: {‘PRO’: ‘艺术’, ‘age’: 40, ‘pos’: ‘singer’, ‘height’: ‘170’}
通过指定键删除后的dictA: {‘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是否存在:', 'P' in name)
print('o是否存在:', 'o' in name)

P是否存在: True
o是否存在: False

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值