? 主要针对之前学过的str、list、tuple、dict等进行补充。
数据类型方法补充
数据类型 | 方法 | 作用 |
---|---|---|
字符串str | s.capitalize() | 首字母大写 |
s.title() | 单词首字母大写 | |
s.swapcase() | 大小写互换 | |
s.count("") | 统计出现次数 | |
s.find("") | 查找索引,找不到返回-1 | |
s.index("") | 查找索引,找不到报错 | |
列表list | s = "拼接项".join(lst) | 遍历列表,把列表中的每一项用“拼接项”做拼接,生成字符串 |
lst.count("查询的元素") | 查询元素出现的次数 | |
lst.index("") | 查找 | |
lst.sort() | 升序排序 | |
lst.reverse() | 翻转 | |
lst.sort(reverse=Ture) | 降序 | |
字典dict | dic.popitem() | 随机删 |
dic = dict.fromkeys( k , v ) | 是一个类方法,用于创建新字典(通过第一个参数的迭代,与第二个参数组和成key:value),每一个value使用的是同一个内存地址 | |
元组tuple | tu.count("查询的元素") | 查询元素出现的次数 |
tu.index("") | 查找 |
数据类型转换
字符串 -- 数字:字符串中必须都是十进制的数字
数字 -- 字符串:直接转换
列表 -- 字符串:‘‘.join() -- 可迭代的对象中不能出现数字
字符串 -- 列表:split
除字典外,容器数据类型之间可以直接相互转换
数据类型小结
int、str、bool、list、tuple、dict、set
有序的有:int、str、bool、list、tuple
无序的有:dict、set
可变的有:list、dict、set
不可变的有:int、str、bool、tuple
访问方式:直接访问:int、bool、set
? 顺序访问:str、list、tuple
? 通过键访问:dict
循环删除索引的时候,要倒序删除 否则会报错,或者结果不正确
索引值是奇数的删除
li = [1,2,3,4]
for i in range(4):
if i % 2 == 1:
li.pop(i) #会报错
print(li)
li = [1,2,3,4,5] #[1,3,4,5]
for i in range(4):
if i % 2 == 1:
li.pop(i) #结果不对
print(li)
li = [1,2,3,4,5]
for i in range(len(li)-1,-1,-1):
if i % 2 == 1:
li.pop(i) #倒序删除 del li[i]也可以
print(li)
li = [1,2,3,4,5] #添加新列表,循环新列表删除就列表
new_li = []
for i in range(len(li)):
if i % 2 == 1:
new_li.append(li[i])
for em in new_li:
li.remove(em)
print(li)
li = [1,2,3,4,5]
del li[1::2]
print(li)
循环添加列表元素的时候,会形成死循环
li = [1,2,3,4]
for i in li:
li.append(i)
print(li)
字典再循环的时候不能改变字典的大小
dic = {"k1":"v1","k2":"v2","k3":"v3"}
for i in dic:
dic["k7"] = "1" #会报错
print(dic)
li = [] #先定义一个列表 循环列表列表删除字典
for i in dic:
if i == "k1" or i == "k3":
li.append(i)
for em in li:
dic.pop(em)
print(dic)
? unicode => utf-8
s = "刘伟很皮" # 12个字节
abc = s.encode("UTF-8") # encode之后的结果是bytes类型 依然是原来的字符串
print(abc)
? utf-8 => unicode
abc = b'\xe5\x88\x98\xe4\xbc\x9f\xe5\xbe\x88\xe7\x9a\xaf'
s = abc.decode("UTF-8") # 解码。 用什么编码, 就用什么解码
print(s)
? 结论:用什么编码集编码, 就用什么编码集解码
原文:https://www.cnblogs.com/yaoqi17/p/11010410.html