python数据类型和编码补充
2018-06-18 02:04:50来源:未知 阅读 ()
一、数据类型补充
1、str
# 1、casefold # 用法:S.casefold() # 意义:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法 # 用法: s = 'aBBex ' print(s.casefold()) #abbex # 2、expandtabs # 用法:S.expandtabs(tabsoze=8) # 意义:把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。 # 从头开始数,数到第一个\t正好为8个空格,不足则补空格,如果还有\t,接着从第一个\t数到第二个\t仍然为8个空格,以此类推直到最后一个\t结束。 # 用法 S = "this is\tstring example....wow!!!" print("原始字符串: " + S) #原始字符串: this is string example....wow!!! print("替换 \\t 符号: " + S.expandtabs()) #替换 \t 符号: this is string example....wow!!! print("使用16个空格替换 \\t 符号: " + S.expandtabs(16)) #使用16个空格替换 \t 符号: this is string example....wow!!!
2、元组
对于元组:如果只有一个元素,并且没有逗号,此元素是什么数据类型,该表达式就是什么数据类型
tu = (1) tu1 = (1,) print(tu,type(tu)) #1 <class 'int'> print(tu1,type(tu1)) #(1,) <class 'tuple'> tu = ('老男孩') tu1 = ('老男孩',) print(tu,type(tu)) #老男孩 <class 'str'> print(tu1,type(tu1)) #('老男孩',) <class 'tuple'> tu = ([1,2,3]) tu1 = ([1,2,3],) print(tu,type(tu)) #[1, 2, 3] <class 'list'> print(tu1,type(tu1)) #([1, 2, 3],) <class 'tuple'>
3、list
对于list,在循环一个列表时,最好不要进行删除的动作(一旦删除,索引会随之改变),容易出错。 55]
# li = [11,22,33,44,55] # 将索引为奇数的元素删除。 li = [11,22,33,44,55] # del li[1::2] # print(li) #[11, 33, 55] ll = [] for i in range(len(li)): if i%2 == 0: ll.append(li[i]) li = ll print(li) #[11, 33, 55]
li = [11,22,33,44,55] # for i in range(len(li)): # print(li) # [11, 22, 33, 44, 55] [11, 22, 33, 44, 55] [11, 33, 44, 55] [11, 33, 44, 55] [11, 33, 44] # print(i) # 0 1 2 3 4 # if i % 2 == 1: # del li[i] # print(li) # [11, 22, 33, 44, 55] [11, 33, 44, 55] [11, 33, 44, 55] [11, 33, 44] [11, 33, 44] # print(i) # 0 1 2 3 4 # print(li) # list assignment index out of range # del li[100] # list assignment index out of range # for i in li: # print(li) # li.remove(i) # print(li) # print(li) # for i in range(len(li)-1,-1,-1): # if i % 2 == 1: # del li[i] # print(li)
4、dict
#Python 字典(Dictionary) fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值 #dict.fromkeys(seq[, value])) dic = dict.fromkeys('abc','alex') print(dic) #{'c': 'alex', 'a': 'alex', 'b': 'alex'} dic = dict.fromkeys([1,2,3],[]) print(dic) #{1: [], 2: [], 3: []} dic[1].append('laonanhai') print(dic) #{1: ['laonanhai'], 2: ['laonanhai'], 3: ['laonanhai']}
dic = {'k1':'value1','k2':'value2','name':'wusir'} # 将字典中含有k元素的键,对应的键值对删除。 # 在循环字典中,不能增加或者删除此字典的键值对。 # dictionary changed size during iteration # for i in dic: # if 'k' in i: # del dic[i] # count = 0 # for i in dic: # dic[i+str(count)] = dic[i] # count += 1 # l1 = [] # for i in dic: # if 'k' in i: # l1.append(i) # # for i in l1: # del dic[i] # print(dic)
二、集合set
数据类型set:不重复,无序,它里面的元素是可哈希的。他本身是不可哈希的,他不能作为字典的key。
作用:1,去重。
2,数据关系的测试。
# 去重 li = [11,11,22,22,33,33,33,44] li = list(set(li)) print(li) #[33, 11, 44, 22] set = {11,22,33,11,22,33,44} print(set) #{33, 11, 44, 22} # 增 set1 = {'alex','wusir','ritian','egon','barry'} set1.add('sb') print(set1) #{'sb', 'barry', 'egon', 'ritian', 'wusir', 'alex'} set1.update('abc') set1.update([1,2,3]) #迭代的增加 print(set1) #{'sb', 1, 2, 3, 'barry', 'egon', 'ritian', 'a', 'b', 'wusir', 'alex', 'c'} # 删 set1.remove('sb') print(set1) #{'c', 1, 2, 'ritian', 'wusir', 3, 'barry', 'b', 'a', 'alex', 'egon'} set1.clear() print(set1) #set() del set1 # print(set1) #删除了 set1 = {1,2,3,4,5} set2 = {4,5,6,7,8} # 交集 & intersection print(set1 & set2) #{4, 5} print(set1.intersection(set2)) #{4, 5} # 反交集 ^ symmetric_difference print(set1^set2) #{1, 2, 3, 6, 7, 8} print(set.symmetric_difference(set2)) #{1, 2, 3, 6, 7, 8} #差集 | union print(set1 | set2) #{1, 2, 3, 4, 5, 6, 7, 8} print(set1.union(set2)) #{1, 2, 3, 4, 5, 6, 7, 8} set1 = {1,2,3} set2 = {1,2,3,4,5,6} print(set1.issubset(set2)) #True 子集 print(set2.issuperset(set1)) #True set2 是set1的超集 set1 = {'barry',"wusir"} set2 = frozenset(set1) #把集合变成可哈希的,有序集合 print(set2,type(set2)) #frozenset({'barry', 'wusir'}) <class 'frozenset'>
三、copy
l1 = [1,2,3] l2 = l1 l2.append(111) # print(l1,l2) print(id(l1)) #2682785139272 print(id(l2)) #2682785139272 # 对于赋值运算,指向的是同一个内存地址。字典,列表,集合都一样。 s = 1000 s1 = s print(id(s)) #2682776128688 print(id(s1)) #2682776128688
l1 = [1,2,3] l2 = l1 l2.append(111) # print(l1,l2) print(id(l1)) #2682785139272 print(id(l2)) #2682785139272 # 对于赋值运算,指向的是同一个内存地址。字典,列表,集合都一样。 s = 1000 s1 = s print(id(s)) #2682776128688 print(id(s1)) #2682776128688 #copy 不是指向一个,在内存中开辟了一个内存空间 #对于浅copy来说,第一层创建的是新的内存地址, # 而从第二层开始,指向的都是同一个内存地址, # 所以,对于第二层以及更深的层数来说,保持一致性。 # l1 = [1,2,3] # l2 = l1.copy() # l1.append(111) # print(id(l1),id(l2)) l1 = [1,2,[1,2,3,[22,33,44]],4] l2 = l1.copy() # l1[2].append(666) print(l1) #[1, 2, [1, 2, 3, [22, 33, 44]], 4] print(l2) #[1, 2, [1, 2, 3, [22, 33, 44]], 4] print(id(l1)) #1603100643016 print(id(l2)) #1603100738056 #deep.copy # 对于深copy来说,两个是完全独立的, # 改变任意一个的任何元素(无论多少层),另一个绝对不改变. import copy l1 = [1, 2, [1, 2, 3], 4] l2 = copy.deepcopy(l1) l1[2].append(666) print(l1,l2) #[1, 2, [1, 2, 3, 666], 4] [1, 2, [1, 2, 3], 4] print(id(l1[2]),id(l2[2])) #print(id(l1[2]),id(l2[2])) # l1 = [1,2,3] l2 = l1 l2.append(111) print(l1,l2) #[1, 2, 3, 111] [1, 2, 3, 111] l1 = [1,2,3,[22,33]] l2 = l1[:] l1[3].append(666) print(l2) # [1, 2, 3, [22, 33, 666]] l1 = [1,2,3,] l2 = l1[:] l1.append(666) print(l2) #[1, 2, 3]
四、编码的补充
s = 'alex' s1 = s.encode('utf-8') # unicode ---> utf-8 编码 s3 = s1.decode('utf-8') # utf-8 ---> unicode 解码 print(s3) # s = 'alex' # s1 = s.encode('gbk') # unicode ---> gbk 编码 # s3 = s1.decode('gbk') # gbk ---> unicode 解码 # print(s3) #gbk ---> utf-8 # s = 'alex' # s1 = s.encode('gbk') # print(s1) # # s2 = s1.decode('gbk').encode('utf-8') # print(s2) s = '老男孩' s1 = s.encode('gbk') print(s1) #b'\xc0\xcf\xc4\xd0\xba\xa2'
s2 = s1.decode('gbk').encode('utf-8') #b'\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9' print(s2)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash