zoukankan      html  css  js  c++  java
  • python常用内置函数使用

    基础小函数、字符串函数、序列函数

    序列、元组、列表小函数

    max() 求最大值(列表、元组、序列)
    min() 求最小值
    len() 求长度

    >>> a = [1,2,3,4]
    >>> max(a)
    4
    >>> min(a)
    1
    >>> len(a)
    4
    >>>

    运算小函数
    divmod() 求运算模,返回一个元组,第一个参数是商,第二个是余数
    pow(x,y) 指数运算,x的y次方
    pow(x,y,z) x的y次方,在与z取模
    round() 浮点数

    >>> a = 3
    >>> b = 4
    >>> divmod(a,b)
    (0, 3)
    >>> divmod(b,a)
    (1, 1)
    >>> pow(a,b)
    81
    >>> pow(a,b,8)
    1
    >>>
    >>> a/b
    0.75
    >>> round(a/b)
    1
    >>> round(a/b,2)
    0.75
    >>> round(a/b,4)
    0.75
    >>>

    其它小函数
    callable() 测试函数是否可被调用
    isinstance(l,list) 测试l是否是一个list

    >>> def f(x):
    	pass
    
    >>> callable(fc)
    Traceback (most recent call last):
      File "<pyshell#3>", line 1, in <module>
        callable(fc)
    NameError: name 'fc' is not defined
    >>> callable(f)
    True
    >>>
    >>> l = [1,2,3,4]
    >>> t = (2,3,4,5)
    >>> s = 'hello'
    >>> isinstance(l,list)
    True
    >>> isinstance(t,tuple)
    True
    >>> isinstance(s,str)
    True
    >>> isinstance(l,str)
    False

    字符串函数

    str.capitalize() 首字母大写
    str.replace('x','y',count) 字符串替换 count 替换几次
    str.split(“”,sep) 将字符串转换为列表,用“”切割,sep切割几次

    >>> str1 = 'hello world , today is very good day'
    >>> str1.capitalize()
    'Hello world , today is very good day'
    >>> str1
    'hello world , today is very good day'
    >>> str1.replace('o','9',1)
    'hell9 world , today is very good day'
    >>> str1.replace('o','9',3)
    'hell9 w9rld , t9day is very good day'
    >>> str1.replace('o','9')
    'hell9 w9rld , t9day is very g99d day'
    >>>
    >>> ip = '192.168.1.254'
    >>> ip.split(".")
    ['192', '168', '1', '254']
    >>> ip.split(".",1)
    ['192', '168.1.254']
    >>>

    序列函数

    filter() 过滤函数
    filter(f,l) 将l列表中的值传给函数f进行判断,保留满足要求的数值 函数return True

    zip() 将两个列表的值进行对应,以元组存放在列表中。以最短的为组合数

    map(None,a,b) 将列表a、b的值对应起来传给None函数,None可以作为函数

    fc(x,y)
    reduce(fc,list) 将列表list的值依次传输给函数fc

    >>> def f(x):
    	if x>5:
    		return True
    
    
    >>> l = [1,2,3,5,6,2,3,6,7,8]
    >>> filter(f,l)
    <filter object at 0x00000220AC4C95E0>
    >>> list(filter(f,l))
    [6, 6, 7, 8]
    >>>
    >>> name = ['zhang','li','wang','zhou']
    >>> age = [22,21,23,24]
    >>> list(zip(name,age))
    [('zhang', 22), ('li', 21), ('wang', 23), ('zhou', 24)]
    >>> city = ['beijing','shanxi','xinjiang']
    >>> list(zip(name,age,city))
    [('zhang', 22, 'beijing'), ('li', 21, 'shanxi'), ('wang', 23, 'xinjiang')]
    >>>
    >>> def f(name,age):
    	return name,age
    
    >>> list(map(f,name,age))
    [('zhang', 22), ('li', 21), ('wang', 23), ('zhou', 24)]
    >>>
    >>> def f(x,y):
    	return x+y
    
    >>> a = [1,2,3,4]
    >>> b = [1,2,3,4]
    >>> list(map(f,a,b))
    [2, 4, 6, 8]
    >>>
    >>>
    >>> l = range(100)
    >>> reduce(f,l)
    Traceback (most recent call last):
      File "<pyshell#29>", line 1, in <module>
        reduce(f,l)
    NameError: name 'reduce' is not defined
    >>>
    >>> from functools import reduce
    >>> reduce(f,l)
    4950
    >>> l = range(101)
    >>> reduce(f,l)
    5050
    >>>
    >>>

    使用reduce时需要导入相应的模块。

    reduce用来计算阶乘很方便。根据reduce,可以写成一行代码来。

    >>> n = 101
    >>> range(n)
    range(0, 101)
    >>> reduce(lambda x,y:x+y , l)
    5050
    >>>

    +修改为*,就是求n的阶乘了。不对n-1的阶乘。

    小例子动手写一下,印象更深刻。


    读书和健身总有一个在路上

  • 相关阅读:
    (Problem 14)Longest Collatz sequence
    (Problem 13)Large sum
    (Problem 10)Summation of primes
    (Problem 9)Special Pythagorean triplet
    (Problem 7)10001st prime
    (Problem 6)Sum square difference
    数组
    断点及复习
    抽象和封装
    类和对象
  • 原文地址:https://www.cnblogs.com/Renqy/p/12784667.html
Copyright © 2011-2022 走看看