勤于思考,默默学习。
分类: 系统运维
2014-07-23 21:45:14
day3内容:
--->函数
--->Pickle序列化
--->正则表达式
--->创建使用模块
--->练习程序
====================day2拾遗1枚举============================
Enumerate枚举
import string
s = string.ascii_lowercase
e = enumerate(s)
print s
print list(e)
enumerate 在循环的同时可以访问到当前的索引值。
L = ['a','b','c','d']
for (offset,item) in enumerate(L):
print item,'appears at offset:',offset
##############################################################
-------------------------------------------------------------------
例:原始打印
>>> for i in 'abc':
... print i
...
a
b
c
>>>
--------------------------------------------------------------------
枚举打印
>>> for i in enumerate('abc'): #返回对应的索引值
... print i
...
(0, 'a')
(1, 'b')
(2, 'c')
>>>
>>> L = ['a','b','c','d']
>>> for (offset,item) in enumerate(L):
... print item,'appears at offset:',offset
...
a appears at offset: 0
b appears at offset: 1
c appears at offset: 2
d appears at offset: 3
--------------------------------------------------------------------
####################################################################
=======================day2拾遗2-集合================================
1、python中的SET集合操作
2、python的set和其他语言类似,是一个无序不重复元素集,基本功能包括
关系测试和消除重复元素,集合对象还支持union(联合),intersection(交),
difference(差)和sysmmetric_difference(对称差集)等数学运算。
3、sets支持x in set,len(set),和for x in set 、作为一个无序的集合,
sets不记录元素位置或者插入点。因此,sets不支持indexing,slicing,或
其他类序列(squence-like)的操作。
#####################################################################
例:
----------------------------------------------
set去重:
>>> a = [1,2,3,1,2,3]
>>> set(a)
set([1, 2, 3])
>>>
----------------------------------------------
>>> a = [1,2,3,4]
>>> b = [3,4,5,6]
>>> a = set(a)
>>> b = set(b)
>>> a,b
(set([1, 2, 3, 4]), set([3, 4, 5, 6]))
----------------------------------------------
>>> a & b --->交集
set([3, 4])
>>> a.intersection(b)
set([3, 4])
>>>
----------------------------------------------
>>> a.union(b)
set([1, 2, 3, 4, 5, 6]) --->联合(并集)
>>> a | b
set([1, 2, 3, 4, 5, 6])
>>>
----------------------------------------------
>>> a ^ b --->对称差集
set([1, 2, 5, 6])
>>> a.symmetric_difference(b)
set([1, 2, 5, 6])
>>>
----------------------------------------------
>>> a - b --->差集
set([1, 2])
>>> a.difference(b)
set([1, 2])
>>>
----------------------------------------------
>>> a.add('gaofubin') --->集合添加(用add而不是append)
>>> a
set([1, 2, 3, 4, 'gaofubin'])
>>> a.remove('gaofubin')
>>> a
set([1, 2, 3, 4])
>>>
>>> a.update(b) --->添加多个
>>> a
set([1, 2, 3, 4, 5, 6])
>>>
>>> a,b
(set([1, 2, 3, 4, 5, 6]), set([3, 4, 5, 6]))
>>>
>>> a.issubset(b) --->判断a是否在b中
False
>>> b.issubset(a) --->判断b是否在a中
True
>>>
>>> a.remove('gaofubin') --->如果不存在会报错,discard则不会
Traceback (most recent call last):
File "
KeyError: 'gaofubin'
>>> a.discard('gaofubin')
>>>
----------------------------------------------
>>> [1,2,3] == [1,2,3]
True
>>> [1,2,3] == [1,3,2]
False
>>> set ([1,2,3]) == set([1,3,2])
True >>>证明集合是无序的
----------------------------------------------
=======================day2拾遗3================================
#######################################################################
zip拉链
使用zip函数可以把两个列表合并起来,成为一个元组的列表。
L1 = [1,3,5,7]
L2 = [2,4,6,8]
使用zip将两个列表合并
>>> L1 = [1,3,5,7]
>>> L2 = [2,4,6,8]
>>> print zip(L1,L2)
[(1, 2), (3, 4), (5, 6), (7, 8)]
>>> for (a,b) in zip(L1,L2):
... print a,b
...
1 2
3 4
5 6
7 8
>>>
当长度不一的时候,多余的被忽略
>>> L1 = [1,3,5,7]
>>> L2 = [2,4,6]
>>> zip(L1,L2)
[(1, 2), (3, 4), (5, 6)]
map则不会忽略,当长度不一样,会用第一个填充
>>> print map(None,L1,L2)
[(1, 2), (3, 4), (5, 6), (7, None)]
>>>
使用zip造字典
keys = ['name','age']
values = ['gaofubin',23]
print dict(zip(keys,values))
map例子:
#!/usr/bin/env python
def square2(x):
return x * x
a=[1,2,3,4,5]
print a
print map(square2,a)
[root@locojoy account]# python ma.py
[1, 2, 3, 4, 5]
[1, 4, 9, 16, 25]