Python 中常用的函数和技巧

一、读取数据分割并放入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 str
name: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 str
My 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 replaceStr
hello 222 world 222

未完待续。。。。。。

猜你喜欢

转载自blog.csdn.net/yanwenyuan0304/article/details/72772616