zoukankan      html  css  js  c++  java
  • python笔记1:python函数的使用

    一、函数:len()

    1:作用:返回字符串、列表、字典、元组等长度

    2:语法:len(str)

    3:参数: str:要计算的字符串、列表、字典、元组等

    4:返回值:字符串、列表、字典、元组等元素的长度

    5:实例 :

    5.1、计算字符串的长度:

    >>> s = "hello good boy doiido"
    >>> len(s)
    21
    

    5.2、计算列表的元素个数:

    >>> l = ['h','e','l','l','o']
    >>> len(l)
    5
    

     5.3、计算字典的总长度(即键值对总数):

    >>> d = {'num':123,'name':"doiido"}
    >>> len(d)
    2
    

     5.4、计算元组元素个数:

    >>> t = ('G','o','o','d')
    >>> len(t)
    4
    

     

    二、sort函数

    sort函数是序列的内部函数
     
    函数原型:
     L.sort(cmp=None, key=None, reverse=False)

    函数作用:

    它是把L原地排序,也就是使用后并不是返回一个有序的序列副本,而是把当前序列变得有序
     
    参数说明:
    (1)  cmp参数
    cmp接受一个函数,拿整形举例,形式为:
    def f(a,b):
    
         return a-b

    如果排序的元素是其他类型的,如果a逻辑小于b,函数返回负数;a逻辑等于b,函数返回0;a逻辑大于b,函数返回正数就行了

     
    (2)  key参数
     key也是接受一个函数,不同的是,这个函数只接受一个元素,形式如下
    def f(a):
    
         return len(a)

    key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序

     
    (3) reverse参数
    接受False 或者True 表示是否逆序
     
    sort举例:
    (1)按照元素长度排序
    L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
    
    def f(x):
    
        return len(x)
    sort(key=f)
    print L

    输出:

    [{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]
     
     
    (2)按照每个字典元素里面key为1的元素的值排序
    L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]
    
    def f2(a,b):
    
        return a[1]-b[1]
    
    L.sort(cmp=f2)
    
    print L

    输出:

    [{1: 1, 2: 4, 5: 6}, {1: 3, 6: 3}, {1: 5, 3: 4}, {1: 9}]
     
    三、reverse()
    reverse() 函数用于反向列表中元素。
     
    reverse()方法语法:
    list.reverse()

    该方法没有返回值,但是会对列表的元素进行反向排序。

    实例:

    #!/usr/bin/python
    
    aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
    
    aList.reverse();
    print "List : ", aList;

    输出结果:

    List :  ['xyz', 'abc', 'zara', 'xyz', 123]

    四、列表推导式

    可以用它来转换和过滤数据。

    写法:

    [表达式 for 变量 in 列表 if 条件]


    转换数据:

    从一到十转换成一到十的平方

    >>> [x*x for x in range(1,11)]
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    过滤数据:
    找出一到十中的偶数

    >>> [x for x in range(1,11) if x%2==0]
    [2, 4, 6, 8, 10]

    与字典搭配使用:

    >>> dict([(x,x*x) for x in range(1,11)])
    {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}


    集合推导式:

    如果列表推导式的结果里有很多重复项的话,可以使用集合推导式,语法就是把列表推导式外面的方括号换为花括号

     >>> {x for y in range(2,8) for x in range(y*2,51,y)}
    set([4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34, 35, 36, 38, 39, 40, 42, 44, 45, 46, 48, 49, 50])


    生成器推导式:

    若把列表推导式的方括号换为圆括号,则返回结果是一个生产器

    >>> (x*x for x in range(1,11))
    <generator object <genexpr> at 0x1007ec2d0>

     五、setdefault()

    主要是获取信息,如果获取不到的时候就按照他的参数设置该值。

    >>> a={}
    >>> a['key']='123'
    >>> print (a)
    {'key': '123'}
    >>> print (a.setdefault('key','456'))  #显示a这个字典的'key'值的内容,因为字典有,所以不会去设置它
    123
    
    >>> print (a.setdefault('key1','456')) #显示a这个字典的'key1'值的内容,因为字典没有,所以设置为456了
    456
    >>> a
    {'key1': '456', 'key': '123'}
  • 相关阅读:
    招银网络
    MYSQL基础
    http中get和post请求的作用和区别
    设计模式
    STL浅析
    云盾态势感知系统检测到您的服务器出现了紧急安全事件:挖矿木马
    SVN服务器搭建详解--权限划分
    MySQL主主复制,mysql主从复制,MySQL+keepalived故障转移。
    Redhat7.0系统利用amoeba对mysql数据进行读写分离的操作,MySQL数据库的主从配置
    源码安装zabbix LNMP源码安装
  • 原文地址:https://www.cnblogs.com/hongyedeboke/p/5772024.html
Copyright © 2011-2022 走看看