有用的python3内置函数

来源:互联网 发布:电脑office软件下载 编辑:程序博客网 时间:2024/06/08 09:59

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


content

一、进制转换

  • 进制转换如二进制bin、八进制oct、十进制int和十六进制hex。还有两个函数也很有用:ord返回一个字符的ASCII数值,而chr与ord相反,将得到一个数值对应的字符。
    a = 10print('二进制bin', bin(a))print('八进制oct', oct(a))print('十六进制hex', hex(a))
    二进制bin     0b1010
    八进制oct 0o12
    十六进制hex 0xa
  • 可以使用int函数将对应进制数的字符串转换为十进制,如二进制字符串10010
    binStr = '10010'print(int(binStr,2))
    18
  • ord函数与chr函数
    intA = 97strB = '好'print(chr(intA))print(ord(strB))print(chr(ord(strB)))
    a
    22909

二、列表或元组常用操作

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

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

    [42, '朋']
    [42, 'abc', (1, 'a')]
    a
  • append 和 extend
    #对以下两个列表进行操作listA = [1,2,3]listB = [4,5,6]listA.append('newData')print(listA)

    [1, 2, 3, 'newData']

    listA.append(listB) #将列表listB作为一个整体加在listA中print(listA)
    [1, 2, 3, [4, 5, 6]]

    listA.extend(listB) #将列表listB的各个值依次加在listA中print(listA)
    [1, 2, 3, 4, 5, 6]

    print(listA+listB) #同extend,不过要创建一个副本
    [1, 2, 3, 4, 5, 6]
  • pop 与 remove
    listC = ['a','b','c','d']value = listC.pop(2) #取出索引为2的值,并赋给变量valueprint(value,'\tlistC = ',listC) #打印出取出的值和当前列表
    c     listC =  ['a', 'b', 'd']

    value = listC.remove('b') #将值b从列表中移除,并把返回结果赋给valueprint(value,'\tlistC = ',listC)
    None     listC =  ['a', 'c', 'd']

    由上可知,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'

原创粉丝点击