python 基础数据类型补充,以及容易遇到的坑
Posted biyunfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 基础数据类型补充,以及容易遇到的坑相关的知识,希望对你有一定的参考价值。
基础类型补充
str 字符串
.index 通过元素找索引值 index索引的意思
.format()格式化填充,按照索引位置填充,可以多不可以少 格式化的意思
.center(20)括号内是20个空格后的内容 居中的意思
.swapcase 大小写反转
.title 首字母大写
list 列表
列表在进行相乘时,元素都是共用的
.sort()排序,对数字进行排序,默认是升序
.sort(reverse=True)倒序,降序的意思
.reverse 反转,前后元素反转的意思
排序也可以对字符串a,b,c进行排序,通过ascii码进行排序
tuple 元组
元组是不可变的列表
元组支持加,支持乘
s1 = (1,2,3,[])
S2 = (4,5,6,[])
print(s1 + s2)
s1 = (1,2,3,[])
s2 = s1 * 3
print(s2)
dict 字典
.fromkeys 批量创建键值对
dic = {}
dic = dic.fromkeys("abc"[])
dic["a"].append(5) 当创建5时,bc地址也是共用的所以也会跟着改变
print(dic)
# dic = {}
# dic = dic.fromkeys("abc",[])
# dic["a"] = 15 把a的空列表换成15,b和c不受影响
# dic["c"].append(dic["a"]) c列表加入a的值,加入不是换成所以b列表也会跟着改变
# print(dic)
#结果:{"a":15,"b":[15],"c":[15]}
循环删除的坑
1.for循环自己维护了计数
2.列表有个自动补位的效果
列表:
1.删除姓周的人
lst = ["周星驰","周芷若","马冬梅","大润发","周杰伦","张杰"]
lst1 = lst.copy()
for i in lst1:
if i[0] == "周":
lst.remove(i)
print(lst)
['马冬梅', '大润发', '张杰']
2.删除带有周字的姓名
lst = ["周星驰","周芷若","马冬梅","大润发","周杰伦","张杰","林周雪"]
lst1 = lst.copy()
for i in lst1:
if "周" in i:
lst.remove(i)
print(lst)
['马冬梅', '大润发', '张杰']
字典和集合
1.字典和集合在循环时不能改变原来的大小。
清空字典
dic = {"dic1":1,"dic2":2,"dic3":3}
dic1 = dic.copy()
for i in dic1:
dic.clear()
print(dic)
编码进阶
ascii: 一个英文一个字节,不支持中文
gbk: 一个英文一个字节,一个中文两个字节
unicode:一个英文四个字节,一个中文四个字节
utf-8:一个英文一个字节,欧洲两个字节,亚洲三个字节
python3中内存使用的是unicode。
python2中内存使用的是ascii。
windows使用的是gbk。
编码与解码
.encode("utf-8") 将中文转换成字节(编码)
示例:
s = "你好"
s1 = s.encode("utf-8")
print(s1)
结果:b'xe4xbdxa0xe5xa5xbd'
.decode("utf-8") 将字节转换成字符串(解码)
示例:
s = "你好"
s1 = s.encode("utf-8")
s2 = s1.decode("utf-8")
print(s2)
结果:你好
以上是关于python 基础数据类型补充,以及容易遇到的坑的主要内容,如果未能解决你的问题,请参考以下文章