发布于2019-08-06 09:43 阅读(1116) 评论(0) 点赞(2) 收藏(4)
1.Python中的编码格式
a.ASCII码
ASCII码共有127个字符,包括数字,大小写字母,和一些符号,比如常见的字符的ASCII码表示有:A:65,z:132,ASCII码是用一个字节表示的,其主要的缺点就是因为在内存中只占一个字节,
所以无法被用来表示中文,只能表示一些单字符元素。针对不能表示中文的缺点,中国也提出了一种可以表示中文的编码格式GB2312。
b.unicode编码
为了实现将所有的字符和语言可以编入到一套字符编码中区,Unicode编码格式被创造,Unicode可以实现表示中文,但是其存在本质的缺点是用两个字节表示一个字符,造成了很大的内存浪费,
所以将ASCII码表示的字符编码转换为Unicode编码,只需要在前面加上一个字节,补足8个0就可以了。Unicode编码的好处就是统一了字符,让不同的字符不会出现乱码。
c.utf-8编码
为了统一字符编码格式,杜绝乱码的出现,并且解决掉Unicode编码造成的浪费资源,出现了一种可变长字符编码,UTF-8编码,可以根据字符的大小,自适应编成1-6个字节,通常英文字母和数字
编成一个字节,汉字编成3个字节,从另一种程度讲ASCII码也是属于UTF-8的,这就解决了一些ASCII码编译乱码的出现。
d.计算机内存中不同编码的应用场景
在计算机内存中存在的是Unicode编码,但是写入存储磁盘中是以UTF-8格式写入的,内存中Unicode表现的形式就是字节,当磁盘文件中的字符需要读到内存中的时候,需要使用encode转换成字 节的形式,表示形式为带有字节b前缀,eg:XXX.encode('unicode')输出:b'xxxx'。内存中的字节如果要从磁盘中去读取字符需要将内存中展示的Unicode编码转换成utf-8编码格式,通过decode方式来实现b'xxx'decode('utf-8')输出:XXX。
2.关于Python中的容器数据类型
a.列表
list是Python内置的数据类型,是一种有序的集合,可以随时添加和删除其中的元素,是一个可迭代的对象。利用代码‘for x in list:’,输出X的值,可以迭代出列表中的每一个元素。
list常用方法:len(list),用来计算列表的长度,list.append(xx)方法可以对列表进行末尾追加,list.pop(index)方法可以用来删除指定元素。
b.元组
tuple类型与list都是Python内置容器类型,一般表示形式为tuple = (x,x,x,x),tuple类型一旦初始化之后便不能再进行改变,没有类似于insert,append这样的插入方法,因为tuple类型不可变,所以代码相对list更为安全,一般代码中可以使用tuple代替list的地方尽量使用tuple代替list。tuple中定义只有一个元素的元组的方法:tuple = (1,),如果没有结尾的逗号,Python解释器会把定义的类型当做整数处理,输出为1。
c.字典
dict其实就是键对值(key - value)存储,可以快速查找。dict类型是无序的数据类型。字典与list的区别,dict插入的是键对值,所以查找速度快,但是占用的存储空间比较大,相反list是查找的速度慢,但是在内存中只占一小部分空间,浪费内存少,dict通常在Python广泛用于高速查找。
列举dict中的所有key和value : for key ,value in dict.items():
d.集合
set与dict类似,只不过存储的是一组key值,因为key值是不可重复的,所以set中的元素也是没有重复的,一般list去重,可以通过将list类型改为set类型,达到去重的效果。set类型是无序的,可以通过set.add()方法进行集合中插入元素,set.remove()方法进行集合中删除元素。两个set可以进行数学上的交集,并集,等集合操作。
作者:我想吃火锅
链接:https://www.pythonheidong.com/blog/article/7126/f210beef84978d53f45f/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!