以下是python学习过程中的小细节的总结,未完成....待续...
format的格式化字符串输出:
>>> "{0},{1},{0}".format(1,2) '1,2,1' >>> format(1234567890,',') #千分位输出 '1,234,567,890' >>> format(1234567890.1234,',') '1,234,567,890.12' >>> format(1234567890.1234,',.3f') #格式化输出小数 '1,234,567,890.123' >>> "[{0:*<10}]".format("a") #左对齐,空的用*补全,否则是空格 '[a*********]' >>> "[{0:*^10}]".format("a") #居中,空的用*补全,否则是空格 '[****a*****]' >>> "[{0:*>10}]".format("a") #右对齐,空的用*补全,否则是空格 '[*********a]'
zip
zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对
>>> L1 = [1,2,3,4] >>> L2 = [5,6,7,8] >>> zip(L1,L2) [(1, 5), (2, 6), (3, 7), (4, 8)] >>> for x,y in zip(L1,L2): ... print x,"+",y,"=",x+y ... 1 + 5 = 6 2 + 6 = 8 3 + 7 = 10 4 + 8 = 12 >>> dict(zip(L1,L2)) #生成字典 {1: 5, 2: 6, 3: 7, 4: 8}
用viewitems()对比两个字典的差异
>>> d1 = dict(a = 1, b = 2) >>> d2 = dict(b = 2, c = 3) >>> v1=d1.viewitems() #viewsitems()生成视图,因为字典不支持直接对比 >>> v2=d2.viewitems() >>> v1&v2 #两个字典的交集 set([('b', 2)]) >>> v1|v2 #两个字典的并集,合并 set([('a', 1), ('b', 2), ('c', 3)]) >>> v1-v2 #差集 (仅 v1 有,v2 没有的) set([('a', 1)]) >>> v2-v1 set([('c', 3)]) >>> v1^v2 #对称差集 (不会同时出现在 v1 和 v2 中) set([('a', 1), ('c', 3)]) >>> v1 dict_items([('a', 1), ('b', 2)]) >>> del d1['a'] #删除d1中的元素,v1视图也会跟着改变 >>> v1 dict_items([('b', 2)]) >>>
OrderedDict生成有序列表,因为字典的生成是无序的,所以包括用popitem或者添加后查看都是无序的,如果想按照添加顺序输出,需要用到OrderedDict
>>> from collections import OrderedDict >>> od=OrderedDict() >>> od[1]=2 >>> od[2]=3 >>> od[3]=4 >>> for k,v in od.items(): ... print k,v ... 1 2 2 3 3 4 >>> od.popitem() (3, 4)