码迷,mamicode.com
首页 > 编程语言 > 详细

python学习day3:函数

时间:2016-01-20 06:20:38      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

 

一、set集合:

1.特点:  访问速度快,去除重复
2.set是一个无序且不重复的元素集合
3.集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.
例:去重
1     #!/usr/bin/env python
2     # -*- encodeing:UTF-8 -*-
3     lst=[1,23,5,4,1,5,4]
4     print(set(lst)) 输出:[1,23,5,4]

例:交集、差集

 1     #!/usr/bin/env python
 2     # -*- encodeing:UTF-8 -*-
 3     old_dict ={
 4     "#1":{hostname:c1,cpu_count:2,mem_capicity:80},
 5     "#2":{hostname:c1,cpu_count:2,mem_capicity:80},
 6     "#3":{hostname:c1,cpu_count:2,mem_capicity:80},
 7     }
 8     new_dict ={
 9     "#1":{hostname:c1,cpu_count:2,mem_capicity:800},
10     "#3":{hostname:c1,cpu_count:2,mem_capicity:80},
11     "#4":{hostname:c2,cpu_count:2,mem_capicity:80},
12     }
13     old=set(old_dict.keys())
14     new=set(new_dict.keys())
15     updata_set=old.intersection(old)
16     del_set=old.symmetric_difference(new)
17     add_set=new.symmetric_difference(updata_set)
18     print(updata_set)
19     print(del_set)
20     print(add_set)

 

二、counter计数
1.对字典数据的处理,追踪值出现的次数
1     import collections
2     obj=collections.Counter(fefheufheuf)
3     #print(obj)
4     #for k in obj.elements():
5     # print(k)
6     for k,v in obj.items():
7     print(k,v) 输出:h 2 f 4 u 2 e 3

 

、orderedDict有序字典
1.orderdDict是对字典类型的补充,是dict的子类,它记住了内容添加的顺序。
2.按照顺序输出列表到字典
1     # -*- encodeing:UTF-8 -*-
2     import collections
3     d = collections.OrderedDict()
4     d[3]=A
5     d[2]=B
6     d[1]=C
7     for k, v in d.items():
8     print(k, v)

 

四、defaultdict默认字典
 1     #!/usr/bin/env python
 2     # -*- encodeing:UTF-8 -*-
 3     import collections
 4     def default_factory():
 5     returndefault value
 6     d=collections.defaultdict(default_factory,foo=bar,ok=ok)
 7     print(d:,d)
 8     print(foo=>,d[foo])
 9     print(ok=>,d[ok])
10     print(bar=>,d[bar])

 

五、deque双向队列
deque,(全名double-ended queue)是一种具有队列和栈的性质的数据结构,双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
 1     #!/usr/bin/env python
 2     # -*- encodeing:UTF-8 -*-
 3     import collections
 4     d=collections.deque(abcdefgh)
 5     print(Deque:,d)
 6 
 7     #!/usr/bin/env python
 8     # -*- encodeing:UTF-8 -*-
 9     import collections
10     d=collections.deque()
11     d.extend(abcdefg)
12     print(extend:,d)
13     d.append(h)
14     print(append:,d)
15     # add to left
16     d1=collections.deque()
17     d1.extendleft(range(6))
18     print(extendleft:,d1)
19     d1.appendleft(6)
20     print(appendleft:,d1)

 

六、queue单向队列
Queue.Queue类即是一个队列的同步实现,队列长度可为无限或者有限
1     #!/usr/bin/env python
2     # -*- encodeing:UTF-8 -*-
3     import queue
4     q=queue.Queue()
5     q.put(123)
6     q.get(4545)
7     print(q)

 

七、可命名元组
根据nametuple可以创建一个包含tuple所有功能以及其他功能的类型
1     #!/usr/bin/env python
2     # -*- encodeing:UTF-8 -*-
3     import collections
4     MytupleClass= collections.namedtuple(MytupleClass,[x,y,z])
5     obj =MytupleClass(11,22,33)
6     print(obj.x)
7     print(obj.y)
8     print(obj.z) 输出:11 22 33

 

八、深浅拷贝
切片技术应用于所有的序列,包括:列表、字符串、元祖 ,但切片不能应用于字典。对字典只能使用*.copy()方法或*.deepcopy()方法,深浅拷贝,即可用于序列,也可用于字典
 1     n1={k1:8,k2:787,k3:[2,4]}
 2     print(id(n1))
 3     n2=copy.copy(n1)
 4     print(id(n2))
 5     n3=copy.deepcopy(n1)
 6     print(id(n3)) 
 7 
 8     n4={cpu:[90,],mem:[80,],disk:[80]}
 9     n5 =copy.deepcopy(n4)
10     print(n5)
11     n5[cpu][0]=60
12     print(n5) 输出:{mem: [80], disk: [80], cpu: [90]} {mem: [80], disk: [80], cpu: [60]}

 

九、函数
1.函数定义:使用def
1     def函数名():
2     函数体
3     函数名()
1 #!/usr/bin/env python
2 def hanshu():
3 num1=8
4 num1+=8
5 print(num1)
6 hanshu() 输出:16
2.默认参数
1     def wa(a1,a2=232,a3=24):#默认参数必须放在最后
2     print(a1,a2,a3)
3     wa(a1=53,a2=989)
3.动态参数
 1     def show(*arg):
 2     print(arg,type(arg))
 3     show(78,98)
 4 
 5     def show(**args):
 6     print(args,type(args))
 7     show(k1=32,k2=898,k3=343)
 8 
 9     def show (*args,**kwargs):
10     print(args,type(args))
11     print(kwargs,type(kwargs))
12     show(34,43,k1=45,k2=45,)
4.内置函数
all(),any()  #使用bool判断真假 all()
bin() 二进制    ord(‘A‘)  字符转换成数字  chr(78)数字转换成字符   random.randint(1,99)随机数
callable用法(f=lambda x:x+1 callable(f))#判断真假enumerate用法
1     l1={alvin,boy,eric}
2     for i,item in enumerate(l1,1):
3     print(i,item) 输出:1 alvin 2 eric 3 boy

map与filte

技术分享
技术分享
5.f.tell() #查看当前指针位置
  f.seek()#指定当前指针位置

python学习day3:函数

标签:

原文地址:http://www.cnblogs.com/Xiaolong-Lv/p/5143902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!