Python 中常用的函数和技巧

来源:互联网 发布:赚钱宝映射哪些端口号 编辑:程序博客网 时间:2024/05/21 19:42

一、读取数据分割并放入list中

使用场景:一般开发中经常会从本地文件中读取数据,并放入list中,
例如:10086,10010,110,120,999

>>> str = '10086,10010,110,120,999'>>> data = [x for x in str.strip().split(',')]>>> print data['10086', '10010', '110', '120', '999']>>> 

二、函数str.format()格式化字符串

使用场景:一般用在变量与字符串结合

用法1:

>>> name = 'mile' >>> age = '2'>>>> str = 'name:{},age:{}'.format(name,age)>>> print strname:mile,age:2

用法2:

>>> data = ['mile',2]>>>> str = "My son's name is {0[0]}, this year {0[1]} years old, had {0[1]} birthday".format(data)>>> print strMy son's name is mile, this year 2 years old, had 2 birthday

用法3:
填充与对齐

填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

>>> '{:0^8}'.format('86')'00086000'>>> '{:0>4}'.format('86')'0086'>>> '{:0<4}'.format('86')'8600'

用法4:
精度常跟类型f一起使用

>>> '{:.3f}'.format(3.141592653589793238462643383249901429)'3.142'

看例子这里还自动四舍五入了

用法5:
与进制一起使用b、d、o、x分别是二进制、十进制、八进制、十六进制。

>>> '{:b}'.format(6)'110'>>> '{:d}'.format(110)'110'>>> '{:o}'.format(110)'156'>>> '{:x}'.format(110)'6e'

用法6:
可以用来分隔数字的千位分隔符号

>>> '{:,}'.format(2342342342342342342)'2,342,342,342,342,342,342'

三、去除字符串左边活着右边的字符str.rstrip() str.lstrip()

例子1:

>>> str = '000000099999999000000'>>> str.rstrip('0')'000000099999999'>>> str.lstrip('0')'99999999000000'

例子2:不添内容就是模式去掉空格

>>> str = '   i have a dream   '>>> str.lstrip()'i have a dream   '

四、list排序

>>> data = [1,4,2,5,3,7,0,2,4]>>> data.sort(key=lambda x :x)>>> print data[0, 1, 2, 2, 3, 4, 4, 5, 7]

python list 中说字符串的话是按照第一个来排序的

>>> data = ['1','9','0','2','4','8']>>> data.sort(key = lambda x :x)>>> print data['0', '1', '2', '4', '8', '9']>>> data = ['1','9','0','200','49','8']>>> data.sort(key = lambda x :x)>>> print data['0', '1', '200', '49', '8', '9']

五、lambda 与 filter结合过滤

上面用lambda函数来排序,下面使用lambda与filter函数过滤

例子1:过滤该出list中大于5的

>>> data = [1,9,0,200,49,8]>>>> data = filter(lambda x:x>5,data)>>> print data[9, 200, 49, 8]

例子2:如果filter的参数是None,就删掉0的,或者是False的,留下不是0的与true

>>> data = [1,9,0,200,49,8,0,-2,False,True]>>> data = filter(None,data)>>> print data[1, 9, 200, 49, 8, -2, True]

六、map()函数

这个具体干啥的我语文差说不清,直接上代码大家看吧

例子1:

>>> data = [1, 2, 3, 4, 5, 6, 7, 8, 9]>>> def f(x):...     return x+1... >>> print map(f,data)[2, 3, 4, 5, 6, 7, 8, 9, 10]

从代码来看map函数把data中每个元素都按照f方法+1

例子2: map() 与lambda结合使用

>>> data = [1, 2, 3, 4, 5, 6, 7, 8, 9]>>> data = map(lambda x:x+3,data)>>> print data[4, 5, 6, 7, 8, 9, 10, 11, 12]

例子3:
输入:[‘adam’, ‘LISA’, ‘barT’]
输出:[‘Adam’, ‘Lisa’, ‘Bart’]

>>> def format_name(s):...     return s[0].upper()+s[1:].lower()... >>> print map(format_name,['adm','LISA','braT'])['Adm', 'Lisa', 'Brat']

七、reduce()函数

例子1:

>>> reduce(lambda x,y:x*y,[1,2,3,4,5])120

结果是从这么得到的:1*2*3*4*5 = 120

八、切割数组

Data[:size] or Data[size:]

>>> data = ['1','2','4','5','6']>>> print data[:3]['1', '2', '4’]>>> print data[3:]['5','6']

九、re.sub 正则替换

re.sub是个正则表达式方面的函数,用来实现通过正则表达式,实现比普通字符串的replace更加强大的替换功能

例子1:

>>> str = 'hello 123 world 456'>>> import re>>>> replaceStr = re.sub('\d+','222',str)>>> print replaceStrhello 222 world 222

未完待续。。。。。。