Python小结

1、Python中__name__在这个模块被import时,这个变量值为该模块名,如果是运行时,则__name__值是__main__

2、字典就是键值对,创建字典方法:

方法一:

>>> dict1 = {}
>>> dict2 = {'name': 'earth', 'port': 80}
>>> dict1, dict2
({}, {'port': 80, 'name': 'earth'})

方法二:从Python 2.2 版本起,可以使用一个工厂方法,传入一个元素是列表的元组作为参数

>>> fdict = dict((['x', 1], ['y', 2]))
>>> fdict
{'y': 2, 'x': 1}

方法三:

从Python 2.3 版本起, 可以用一个很方便的内建方法fromkeys() 来创建一个"默认"字典, 字典中元素具有相同的值 (如果没有给出, 默认为None,这个有点像我框架的oneObject方法):

>>> ddict = {}.fromkeys(('x', 'y'), -1) 
>>> ddict
{'y': -1, 'x': -1}
>>>
>>> edict = {}.fromkeys(('foo', 'bar'))
>>> edict
{'foo': None, 'bar': None}

3、operator.itemgetter函数用于获取对象的哪些维的数据

,参数为一些序号(即需要获取的数据在对象中的序号),下面看例子。

a = [1,2,3] 
>>> b=operator.itemgetter(1)      //定义函数b,获取对象的第1个域的值
>>> b(a) 

>>> b=operator.itemgetter(1,0)  //定义函数b,获取对象的第1个域和第0个的值
>>> b(a) 
(2, 1)

要注意,operator.itemgetter函数获取的不是值,而是定义了一个函数,通过该函数作用到对象上才能获取值。

例如要通过student的第三个域排序,可以这么写:
sorted(students, key=operator.itemgetter(2)) 
sorted函数也可以进行多级排序,例如要根据第二个域和第三个域进行排序,可以这么写:
sorted(students, key=operator.itemgetter(1,2))

4、python中import re,导入正则表达式包,其中 ? 表示前面的字符可有可无,例如 e-?mail 匹配 email和e-mail;^出现在方括号之前表示起始位置为方括号里面的字符,如果在方括号里面则表示匹配方括号里面字符以外的字符,所以^[aeiou]表示以元音开头,而[^aeiou]表示非元音的所有字符。+和*表示前面字符出现至少一次和至少0次,而且注意了方括号的意思是匹配字符集合。圆括号表示一个操作符的范围;大括号表达式表示前面的项目重复指定次数({n},表示重复n次,{n,}表示至少重复n次,{,n}重复不多于n次,{m,n}表示至少重复m次不多于n次

原文地址:https://www.cnblogs.com/sevenguin/p/4023287.html