1. 程式人生 > >python-高階語法和除錯

python-高階語法和除錯

zip

-把兩個可迭代的內容生成一個可迭代的tuple元素型別組成的內容

l1=[1,2,3,4,5]
l2=[11,22,33,44,55]
z=zip(l1,l2)
print(type(z))
print(z)
for i in z:
    print(i)

l1=["dd","ff","zz"]
l2=[12,13,14]
z=zip(l1,l2)
for i in z:
    print(i)

l3=[i for i in z]
print(l3)

enumerate

-跟zip功能比較像

-對可迭代物件裡的每一個元素,配上一個索引,然後索引和內容構成tuple型別

l1=[11,22,33,44,55]
em=enumerate(l1)
l2=[i for i in em]
print(l2)


em=enumerate(l1,start=100)
l2=[i for i in em]
print(l2)


collections模組

-namedtuple

   ·tuple型別   ·是一個可命名的tuple

import collections
Point=collections.namedtuple("Point",['x','y'])
p=Point(11,22)
print(p.x)
print(p[0])

import collections
help(collections.namedtuple)

Circle=collections.namedtuple("Circle",['x','y','r'])
c=Circle(100,150,50)
print(c)
print(type(c))
isinstance(c,tuple)

-dequeue

·比較方便的解決了頻繁插入帶來的效率問題

from collections import deque
q=deque(['a','b','c'])
print(q)
q.append("d")
print(q)
q.appendleft('x')
print(q)


#defaultdict
#當直接讀取dict不存在的屬性時,直接返回預設值
dl={"one":1,"two":2,"three":3}
print(dl['one'])

from collections import defaultdict
func=lambda:"dd"
d2=defaultdict(func)
d2["one"]=1
d2["two"]=2
print(d2)

counter

-統計字串個數

from collections import Counter
c=Counter("svdfsvvsdv,sfv;dcsvv;sdfdfvvtrg;ev")
print(c)

s=["dc","fr","bg","dc","dc","bg"]
c=Counter(s)
print(c)