基础数据类型补充
首字母大写
s1=skdlasd
print(s1.capitalize())
大小写反转
s1.swapcase()
每个单词首字母大写
msg= hi tai 3bai
msg.title()
居中
s1.center(20) 中间填长度
s1.center(20,"") 缺的 用 "* " 填充
查找在字符串的顺序
find:通过元素找索引 找到第一个就返回 找不到就返回-1
s1="barry"
print(s1.find("a")) #1
print(s1.find("r")) #2
print(s1.find("c")) # -1
index:通过元素找索引,找到第一个就返回 找不到就报错
l1,index("大壮")
元组的特例
元组只有一个元素,并且没有逗号, 那么他就不是元组,
他与该元素数据类型一致
tul=(2) #int
tul=(2,) #元组
计数
count 计算元素出现次数
tu=(1,2222,333,333,2,2,2,2,)
print(tu.count(3)) #4
排序
sort
l1=[5,4,3,2,8,9,10]
l1.sort() # 默认从小到大
l1.sort(reverse=True) #默认从大到小
l1.reverse() 反转列表
列表相加
l1=[1,2,3]
l2=[4,5,6]
print(l1+l2)
[1,2,3,4,5,6]
列表乘数字
l1=[1,2,3]
print(l1*3)
[1,2,3,1,2,3,1,2,3]
按照奇数索引删除列表
l1=[11,22,33,44,55]
最简单的一种
del l1[1::2]
print(l1)
remove
先把奇数的单独摘出来 成一个列表
然后循环这个列表
v1.remove(i)
倒序法删除元素
for index range(len(l1)-1,-1,-1)
if index %2==1:
print(index)
思维置换
l2=[]
for index in range(len(l1)
if index %2==0:
l2.append(l1[index])
print(l2)
字典的补充
dic={"name":"太白","age":18}
dic.update(hobby="运动",height="175") #添加方式1
dic.update(name="太白金星") #更改键值对
dic.update([(1,"a"),(2,"b")]) #添加方式2 面试会考
dic1={"name":"jin","age":18,"sex":"male"}
dic2={"name":"alex","weight":75}
dic1.update(dic2) #更新 有则覆盖 无则添加
fromkeys
dic = dict.fromkeys("可迭代对象",共用的键值)
dic = dict.fromkeys("abc",100)
{"a":100,"b":100,"c":100}
dic = dict.fromkeys([1,2,3],"alex")
{1:"alex",2:"alex",3:"alex"}
dic = dict.fromkeys([1,2,3],[])
{1:[],2:[],3:[]}
dic[1].append(666)
print(dic1)
所有数据都可以转换成bool
0 "" () [] {} set() none #7种 转换成bool 是False
分类
直接访问
数字
顺序访问(序列访问)
字符串 列表 元组 #先找第一个门,然后一直找 找到这个门 敲门
key值访问(映射类)
字典 #直接敲门
编码的进阶
ascii
中文英文特殊符号 1字符
gbk
汉字 2字符 ascii中的 1字符 中文英文特殊符号
unicode
全是4字节
utf-8
ascii中的字符 1字节
中文 3字节
不同密码本之间不能互相识别
数据在内存中全部是Unicode编码的
但是当你用于网络传输或者存储到硬盘中必须是非unicode 编码(utf-8,gbk) 省流量
bytes
内存中编码方式:非unicode
b=b"hello"
b.upper() 变大写
s1="中国" b=b'\xe4\xb8\xad\xe5\x9b\xbd'
英文
内存中编码方式: unicode
表现形式: "hello"
bytes:
内存中编码方式:非unicode
b=b"hello"
b.upper() 变大写
中文
内存中编码方式: unicode
表现形式: "中国"
bytes:
内存中编码方式:非unicode #utf-8
表现形式:b=b'\xe4\xb8\xad\xe5\x9b\xbd'
b.upper() 变大写
str----> bytes
为什么转化
s1="中国"
b1=s1.encode('utf-8') #编码
print(b1,type(b1))
b1=b'\xe4\xb8\xad\xe5\x9b\xbd'
s2=b1.decode("utf-8") #解码
print(s2)
gbk--->utf-8
b1.decode("utf-8")
b1.encode("gbk")
今日总结
数据类型的补充 list (sort reverse 列表的相加 乘 循环的问题)
dict(update循环问题)
编码的进阶:bytes 为什么存在
bytes 为什么存在
str--->bytes (unicode---->非unicode)
gbk<---->utf-8
先解码 decode 成 unicode
再编码成 encode 成 utf-8
来源:https://www.cnblogs.com/xueba/p/12344670.html