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'\xe4\xbd\xa0\xe5\xa5\xbd'
.decode("utf-8") 将字节转换成字符串(解码)
示例:
s = "你好"
s1 = s.encode("utf-8")
s2 = s1.decode("utf-8")
print(s2)
结果:你好

猜你喜欢

转载自www.cnblogs.com/biyunfeng/p/11934590.html