为了账号安全,请及时绑定邮箱和手机立即绑定

不得不知的python3内置函数

标签:
Java Python

已经有将近三个月没有记录自己的学习心得了,不是我懒惰呀,也不是我停滞不前,确实是有原因的。这不刚去三哥的大印度神游了一圈,也是有所收获的,其中有两点给我的感触极深,

  • 其一就是印度人民与自然真的太和谐了,在大街上不仅能够看到家禽家畜吊儿郎当的散步,而且像猴子这样的野生动物也肆无忌惮的在街上霸道横行,一不小心你手中的东西都会被它抢走,真是防不胜防,欢乐无限啊

  • 第二个那就是印度的电影了,歌舞是印度电影的特色,即使是宝莱坞这等国际范十足的电影中也不免载歌载舞,即使是两个死对头手持尖刀短枪抵在脑门上,气氛极其严肃之时,也会在瞬间上演一段歌舞,真是匪夷所思,触目惊心啊

好,言归正传,废话少叙,今天分享几个在实践中经常用到且功能强大的内置函数,由于python的内置函数很多,无法一一列举,只分享几个常用的,基本能够处理日常遇到的大部分问题

content

一、进制转换

  • 进制转换如二进制bin、八进制oct、十进制int和十六进制hex。还有两个函数也很有用:ord返回一个字符的ASCII数值,而chr与ord相反,将得到一个数值对应的字符。
    a = 10 print('二进制bin', bin(a)) print('八进制oct', oct(a)) print('十六进制hex', hex(a))
    <pre>
    二进制bin   0b1010
    八进制oct   0o12
    十六进制hex  0xa</pre>

  • 可以使用int函数将对应进制数的字符串转换为十进制,如二进制字符串10010
    binStr = '10010' print(int(binStr,2))
    <pre>18</pre>

  • ord函数与chr函数
    intA = 97 strB = '好' print(chr(intA)) print(ord(strB)) print(chr(ord(strB)))
    <pre>a
    22909
    好</pre>

二、列表或元组常用操作

之所以把列表和元组放在一起,是因为这两种数据结构几乎有相同的函数和操作方式,只不过元组不支持修改数据而已。列表是python中经常使用到的结构,操作的方法很多,也非常灵活。

  • 切片与取值
    listA = [33,42,'朋','abc','b',(1,'a')] print(listA[1:3]) #取索引为1,2的数,步长默认为1 print(listA[1:6:2]) #步长指定为2 print(listA[5][1]) #listA[5]得到元组,然后取得元组的第二个值
    <pre>[42, '朋']
    [42, 'abc', (1, 'a')]
    a</pre>

  • append 和 extend
    #对以下两个列表进行操作 listA = [1,2,3] listB = [4,5,6] listA.append('newData') print(listA)
    <pre>[1, 2, 3, 'newData']</pre>
    listA.append(listB) #将列表listB作为一个整体加在listA中 print(listA)
    <pre>[1, 2, 3, [4, 5, 6]]</pre>
    listA.extend(listB) #将列表listB的各个值依次加在listA中 print(listA)
    <pre>[1, 2, 3, 4, 5, 6]</pre>
    print(listA+listB) #同extend,不过要创建一个副本
    <pre>[1, 2, 3, 4, 5, 6]</pre>

  • pop 与 remove
    listC = ['a','b','c','d'] value = listC.pop(2) #取出索引为2的值,并赋给变量value print(value,'\tlistC = ',listC) #打印出取出的值和当前列表
    <pre>c  listC =  ['a', 'b', 'd']</pre>
    value = listC.remove('b') #将值b从列表中移除,并把返回结果赋给value print(value,'\tlistC = ',listC)
    <pre>None   listC =  ['a', 'c', 'd']</pre>

由上可知,pop取出指定索引的值,并从列表中删除;而remove直接移除指定值,不返回该值。

三、字符串常用操作

在python中,字符串比列表更常使用,操作也十分灵活,也可进行分片、索引取值、两字符串相加等。提到字符串,自然离不开正则表达式,不过这里暂时不涉及正则表达式,后面会专门分享。那就看看关于字符串的操作吧。

  • replace

>>> strA = 'I love python3 very much'
>>> strA.replace('love','like')        #将love替换为like
'I like python3 very much'
>>> a = strA.replace('love','like')  #赋值给新变量
>>> a
'I like python3 very much'
>>> strA                                         #原字符串并没有改变
'I love python3 very much'

  • join

>>> a = ','
>>> b = '123'
>>> a.join(b)  #将b拆开,并加入a
'1,2,3'

  • split

>>> strC = 'the way to mad'
>>> strC.split(' ')  #将字符串以空格为分隔符分开
['the', 'way', 'to', 'mad']
>>> c = strC.split(' ')  #赋值给一个变量
>>> c[-1]
'mad'
>>> strC  #原字符串并没有改变
'the way to mad'

  • format

>>> strD = 'I love {arg}'
>>> strD.format(arg = 'python') #格式化输出,将python赋给arg
'I love python'
>>> strD
'I love {arg}'
>>> 'i love {0}'.format('python') #写成这样无需指定赋值的变量

  • strip

>>> str = '\t\n  python'
>>> str
'\t\n  python'
>>> str.strip()  #可看到制表符和换行符都去掉了,同时还有延伸出来的lstrip和rstrip
'python'

四、其他常用函数简介

  • map
    map函数接收一个函数和一个可迭代对象作为参数,当需要对一个序列进行批量操作的时候非常有用。

>>> def cube(x):    #这个函数的作用是计算立方
...   return x*x*x
...
>>> listA = [1,2,3,4]
>>> map(cube,listA)   #生成一个map对象
<map object at 0x00000000026A94A8>
>>> list(map(cube,listA))   #使用list转换为一个列表
[1, 8, 27, 64]

  • reduce
    都说mapReduce,既然讲了map,怎么能少了reduce呢。

>>> from functools import reduce #这个需要先引入才行
#将上一个map得到的列表计算各个的和,这里使用了lambda表达式
>>> reduce(lambda a,b:a+b,list(map(cube,listA)))
100

  • filter
    顾名思义,filter就是过滤的作用,接收的参数与map类似,不过第一个参数:函数需返回一个布尔值,而不是进行计算等操作。拿上面map得到的结果进行处理吧,将小于50的数筛出来。

>>> list(filter((lambda a:a<50),list(map(cube,listA)))) #这里也要使用list转换哦
[1, 8, 27]

以上三个函数在处理数据的时候是很常用的,通常需要结合在一起使用。

  • zip
    在C++、java之类的编程语言中对两个变量进行循环是很容易的,如C++中可以这样:
    for(i=0,j=0;i<10,j<10;i++,j++) { statement; }
    在python不能直接这样写for循环,那是不是就意味着不能处理需要两个循环变量的问题了,其实也是可以处理的,下面看一下zip的作用。

>>> a = [1,2,3,4]  #四个元素
>>> b = ['a','b','c']  #三个元素
>>> c = zip(a,b)
>>> list(c) #三个元组组成的列表
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> for i,j in zip(a,b):
...   print(i,j)
...

1 a
2 b
3 c

  • enumerate
    该函数返回索引值。

>>> for i,k in enumerate(b):
...   print(i,k)
...
0 a
1 b
2 c

  • 字典的操作
    字典是一种以键值对存储的数据结构,在网络数据传输中使用广泛。以下简单示范常用操作

>>> dictA = {'name':'python','sex':'female'}
>>> for i in dictA.keys():  #keys方法得到所有键
...   print(i,dictA[i])
...
name python
sex female
>>> for k,v in dictA.items(): #items方法得到键与值
...   print(k,v)
...
name python
sex female

>>> dictA.keys()
dict_keys(['name', 'sex'])
>>> dictA.values()  #通过values方法得到所有值
dict_values(['python', 'female'])
>>> dictA.get('name') #通过get方法得到特定key对应的值
'python'
>>> dictA['name']  #有点像列表通过索引取值
'python'


** 冰冻三尺,非一日之寒。**



作者:周且南_laygin
链接:https://www.jianshu.com/p/ef154d93263c


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消