基本数据类型方法2
字符串了解部分
find,rfind , index , rindex , count
find 找索引值
x = 'qwe ras df'
res = x.find('ras') #对应的是索引的值2,如果找没有的返回值为-1
x.find('ras',0,9) #在指定范围内查找
x.rfind #返回字符串最后一次出现的位置(从右向左查询),如果没有匹配,则返回-1
x.index('ras') #找索引值,没有则报错
x.rindex('ras') #从右向左找,没有会报错
center ,ljust ,rjust ,zfill
center #center() 方法返回一个指定的宽度 width 居中的字符串,如果width小于字符串宽度,直接返回字符串,不会截断,fillchar 为填充的字符,默认为空格
x = 'qw'
res = x.center(50,'*')
ljust #左对齐,剩下用字符串填充到指定宽度
rjust #右对齐,剩下用字符串填充到指定宽度
zfill #返回指定长度的字符串,原字符串右对齐,前面填充0。
expandtabs
print("hello world ".capitalize(2)) #把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8
captalize,swapcase,title
capitalize # 首字母大写
swapcase #大小写反转
title #所有单词首字母大写
print('hello world'.capitalize)
isidentifier isspace istitle
# 用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法
# 检测字符串是否只由空白字符组成,空白符包含:空格、制表符(\t)、换行(\n)、回车(\r)等
# 用于检测每个单词首字母是否大写
列表
list 转换,其实是相当于将内部循环,然后添加空列表
-
append在原列表尾部加值
v1 = [1,2,3] v1.append(4)
-
insert 在原列表的指定索引位置插入值
-
extend 将一个列表元素添加到另一个列表
v1 =[1,2,3] v2 =[4,5,6] v1.extend(v2) #将v2中的值逐一加到v1中[1,2,3,4,5,6]
-
remove 在原列表中根据值从左到右找到第一个删除
v1 =[1,2,1,3] v1.remove('1') #[2,1,3]
-
pop 在列表中根据索引删除某个元素, 有返回值,默认删除列表最后一个
v1 = [123,1232,43453] v2 = v1.pop(1)
-
clear清空原列表,reverse反转列表
v1 = [1,2,3] v1.clear v2 =[2,3,4] v2.reverse
-
sort 排序 默认reverse = false,则从小到大
v1= [1,3,2,4] v1.sort(reverse = false) #[1,2,3,4]
公共方法
- 索引,len(),切片,步长,for,嵌套
- 因为是可修改类型,所以可以根据索引进行删除和替换
元组
一般可以被循环的元素才能转换成元组
-
其本身不可被修改,但其可变的子子类可被修改
v1 =(1,2,3,[4,5]) v1[3][0] = 1
-
元组的最后多加一个逗号,用于标识他是一个元组
比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别? 比较值 v1 = ((1),(2),(3)) 和 v2 = ((1,),(2,),(3,),) 有什么区别?
-
len(),切片,步长,索引,for,嵌套
(1,) == 1, Out: (False,) a = (1,) b = 1, a==b Out: True #原本1, 就是一个元组: (1,)但是 (1,) == 1, 在解析的时候,变成了这样 ((1,) == 1), 于是 便有了结果 (False,)
字典
在Python3.6+字典就是有序了,之前的字典都是无序。 键值对 {key: value}
字典的键必须不可更改,值可以是任意类型
转换时必须要有特定的格式 满足能转换成键值对的形式
date ={1:2,'a':2}
data = info.keys() # 在Python2中 字典.keys()直接获取到的是列表,而Python3中返回的是高仿列表,这个高仿的列表可以被循环显示。
data = info.values() #在Python2中 字典.values()直接获取到的是列表,而Python3中返回的是高仿列表,这个高仿的列表可以被循环显示
date = info.items() ## item是一个元组 (键,值)
for key,value in info.items():
print(key,value) # key代表键,value代表值,将直接从元组中直接拆分出来了
- 更新键值对
info = {"age":12, "status":True}
info.update({"age":14,"name":"ppp"}) # info中没有的键直接添加;有的键则更新值
print(info) # 输出:{"age":14, "status":True,"name":"ppp"}
- 移除键值对
info = {"age":12, "status":True,"name":"ppp"}
data = info.pop("age")
print(info) # {"status":True,"name":"ppp"}
print(data) # 12
- 根据字典获取值
info = {"age":12, "status":True,"name":"ppp"}
data = info.get("name",None) # 根据name为键去info字典中获取对应的值,如果不存在则返回None,存在则返回值。
print(data) # 输出:ppp 一般直接用键去获取值容易报错,所以用get
len(), 通过键可以找到字典中的值,通过键也可以对字典进行添加和更新操作,如果键不存在,则会添加键值对,如果存在,则会更新键对应的值 for,可以循环键,值,及键值对
在嵌套和对内部数据操作时要注意:元组子元素不能变
、不可哈希的list、dict不能做字典的键
# 字典根据键的查找速度非常快,远远大于列表或元组通过索引查找的速度,因为字典内部是基于hash存储