1、python的发布比unicode标准要早,所以编码会有所问题。
在2.x时,u'汉字'和‘汉字’表示的是不同的东西,第一个是unicode编码之后的每个字用2个字节(16进制)表示的2个字符串(unicode一般用2个字节表示)u'\u6c49\u5b57' 长度的形式。第二个是直接将每个汉字用utf-8编码生成对应的3个字节表示的6个字符串(utf-8一般用3个字节表示汉字)'\xe6\xb1\x89\xe5\xad\x97' 长度的形式。当然如果用encode编码成gb18030或2312之类的形式,那每个汉字就只有2个字节,即字符串 '\xba\xba\xd7\xd6' 长度是(16进制表示的)4。
在3.x时,上面两种形式相同并且直接会以汉字形式显示。
2、list = []和tuple = ()有向序列的比较
除了表示形式和tuple没有append、insert这些方法不同外,list更自由灵活,tuple更安全,因为list提供多种对数据的操作,而tuple是不能修改已确定的元素的值的,因为tuple对某一个元素的指向是不变的,但是tuple中某个元素被定义成list类型时,其值是可改的,因为tuple对该元素的指向是没变的(tuple在该位置存储的list的指针)。另外tuple要定义一个元素的列表时必须加逗号,如(1,)否则会被解释成一个语法块。
3、python要支持中文得申明编码,如# -*- coding: utf-8 -*- 或 #coding=utf-8放在文件头就行了。
4、dict字典即map,存储的键值对;set存储的是键值,存储类型不定。dict字典和set集合都不能存储键值变化的值,所以像list[],dict{}就不能存储,但是tuple可以存储的,因为指向不变。
dict速度快,但浪费空间,因为映射造成不在同一页之类的等
set元素都不重复的,可以添加,但是无意义