基本数据类型补充及二次编码
基本数据类型补充
1.字符串str
1.1 首字母大写 .capitalize()
name = 'alex'
name = name.capitalize()
print(name)
# 结果:Alex
1.2 每个单词首字母大写 .title()
name = 'alex_sb'
name = name.title()
print(name)
# 结果:Alex_Sb
1.3 大小写反转 .swapcase()
name = 'alex'
name = name.swapcase()
print(name)
# 结果:ALEX
1.4 居中 .center(v1)
name = 'alex'
name = name.center(20)
print(name)
# 结果:
alex
? 填充 .center(v1,v2)
name = 'alex'
name = name.center(20,'*')
print(name)
# 结果:
********alex********
1.5 查找 .find()
name = 'alexslda'
s = name.find('l')
print(s)
# 结果:1 返回该字符的第一个索引位置,查找不到返回 -1
? .index()
name = 'alexslda'
s = name.index('l')
print(s)
# 结果:1 返回该字符的第一个索引位置,查找不到报错
1.6 拼接 "字符".join(可迭代对象)
name = 'ALEX'
name1 = '.'.join(name)
print(name1)
# 结果:A.L.E.X
1.7 格式化
? ① .format(对应位置元素) 按照顺序位置填充
print('alex{}{}{}'.format(1,2,3))
# 结果:alex123
? ② name = ‘alex{2},{0},{1}‘
? print(name.format("a","b","c")) 按照索引值进行填充
name = 'alex{2},{0},{1}'
print(name.format("a","b","c"))
# 结果:alexc,a,b
? ③ name = ‘alex{a},{b},{c}‘
? print(name.format(a = 1,b = 1,c = 67)) 按照关键字进行填充
name = 'alex{a},{b},{c}'
print(name.format(a = 1,b = 1,c = 67))
# 结果:alex1,1,67
2.列表list
2.1 定义方法:
? lst = list(v) 参数必须为可迭代对象
lst = list(range(10))
print(lst)
# 结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.2 其他方法:
? ① 升序排列 .sort()
lst = [1,34,23,56,5,89]
lst.sort()
print(lst)
# 结果:[1, 5, 23, 34, 56, 89]
? ② 反转列表 .reverse()
lst = [1,34,23,56,5,89]
lst.reverse()
print(lst)
# 结果:[89, 5, 56, 23, 34, 1]
? ③ 降序排列 .sort(reverse = True)
lst = [1,34,23,56,5,89]
lst.sort(reverse = True)
print(lst)
# 结果:[89, 56, 34, 23, 5, 1]
? ④ 列表合并 :
- lst.extend(lst1)
lst = [1,34,23,56,5,89] lst1 = [3,4,65,32] lst.extend(lst1) print(lst) # 结果:[1, 34, 23, 56, 5, 89, 3, 4, 65, 32]
- lst2 = lst +lst1
lst = [1,34,23,56,5,89] lst1 = [3,4,65,32] print(lst + lst1) # 结果:[1, 34, 23, 56, 5, 89, 3, 4, 65, 32]
*** 列表的可进行 + *(数字)运算
3.元组(tuple)
- tu = ("1") 括号内数据类型为数据对象本身
- (1,) 数据类型为元组
- 元组进行 + *操作时可变数据类型、不可变数据类型均公用
4.字典dict
4.1 随机删除
? .popitem() 可以元组方式返回被删除对象
dic = {'漩涡鸣人':'螺旋丸','佐助':'千鸟流'}
s = dic.popitem()
print(dic,s)
# 结果:{'漩涡鸣人': '螺旋丸'} ('佐助', '千鸟流')
4.2 批量添加键值对
? .fromkey(v1,v2) v1和v2分别对应键和值,v1内容必须为可迭代对象,v2会被公用
dic = {}
dic.fromkeys('123',[23]) #需要新建对象接受
print(dic)
# 结果:{}
5.集合
? set(‘str‘) 迭代添加
se = set('alex')
print(se)
# 结果:{'x', 'e', 'l', 'a'}
注:空字典{} 空集合set()
6.布尔bool
? 值为False的量:数字0 字符串"" 其他None 列表[] 元组() 字典{} 集合set()
数据类型转换
list tuple
# tuple list转化
# str list转化
name = "alex" print(name.split())
# list str转化
lst = ["1","2","3"]
print(''.join(lst))
# dict -- str转化
dic = {"1":2}
print(str(dic),type(str(dic)))
print(dict("{1:1}"))
# set - list
# list - set
python数据类型
可变 : list dict set
不可变:in bool str tuple
有序: list tuple str int bool
无序:dict set
取值方式:
索引:str list tuple
直接:set int bool
键: dict 速度快,消耗最高
二次编码
密码本:
# ascii -- 没有中文
# gbk -- 英文 8b(位) 1B(字节) 中文 16b 2B
# unicode -- 英文16b 2B 中文32b 4B
# utf-8 -- 英文8b 1B 欧洲16b 2B 亚洲24b 3B
name = "你好啊"
s1 = name.encode("utf-8") # 编码 9
s2 = name.encode("gbk") # 编码 6
s2 = s1.decode("utf-8") # 解码
print(s2.encode("gbk"))
# 以什么编码集(密码本)进行编码就要用什么编码集(密码本)解码
原文地址:https://www.cnblogs.com/lifangzheng/p/11178397.html