zoukankan      html  css  js  c++  java
  • 第七讲:列表

    列表

    说明:列表用方括号[]表示,元素之间用,隔开,类型容器,内容可改变。List可以放数字,字符串,元组,字典,列表,类,内建函数等

    1、创建列表:

    list1=[]

    list2=[1,2,'234',[2,3,4]]

    2、(查)访问获取列表元素:索引方式获得,列表索引从0开始:

    list2=[1,2,'234',[2,3,4]]
    print (list2[2])
    print (list2[3][2])
    print (list2[2:4]) #列表切片,获取从索引2到索引3位置元素


    运行结果:
    234
    4
    ['234', [2, 3, 4]]

    3、(改)改列表元素:给列表元素重新赋值

    list2=[1,2,'234',[2,3,4]]
    list2[3]=[5,6,7]
    print (list2)
    
    运行结果:
    [1, 2, '234', [5, 6, 7]]

    4、(增)增加列表元素:用append()和insert()方法:

    append()与insert()的区别:

    append(元素):末尾添加元素,对原列表有变化

    insert(位置i,元素x):在两个元素之间添加元素

    list2=[1,2,'234',[2,3,4]]
    list2.append('ABC')
    print (list2)
    list2.insert(3,'hello insert')
    print (list2)

    运行结果:
    [1, 2, '234', [2, 3, 4], 'ABC']
    [1, 2, '234', 'hello insert', [2, 3, 4]]

    5、(删)用del删除列表或列表的元素;用remove() 移除列表的元素;用pop() 通过元素下标删除元素

     del、remove、pop的区别:

    remove是对列表的元素进行检索删除;返回是删除的列表,不是删除的元素,返回值None;

    del和pop是对列表的元素的下标进行检索删除;del不返回删除值;pop返回删除值

    list1=[1,2,'234',[2,3,4]]
    list1.remove('234')                  #remove()对元素进行检索
    print ("list1.remove('234')=",list1)
    list1.pop(2)                         #pop()对元素的下标进行检索
    print ('list1.pop(2)=',list1) del list1[0] print ('del list1[0]=',list1) #del对元素的下标进行检索,删除会快点

    运行结果:
    list1.remove('234')= [1, 2, [2, 3, 4]]
    list1.pop(2)= [1, 2]
    del list1[0]= [2]

     6、列表的运算符:

    7、列表的切片截取:

    L = ['spam', 'Spam', 'SPAM!']
    #获取列表第三个元素:
    print (L[2])
    #读取列表中倒数第二个元素:
    print (L[-2])
    #从列表的第二个元素开始截取列表:
    print (L[1:])
    print (L[:])


    运行结果:
    SPAM!
    Spam
    ['Spam', 'SPAM!']
    ['spam', 'Spam', 'SPAM!']

    8、列表复制:传值和传引用:

    说明:引用(变量a=变量b)指的是操作的同一个对象,复制([:]模式)指完全复制一个新的对象

    L1= ['spam', 'Spam', 'SPAM!']
    L2= L1   #传地址
    L3= L1[:]    #传值
    print (L2 is L1)   #True
    print (L3 is L1)   #False

    注意:列表的比较用is,不要用in ,in是比较元素

    9、列表函数与方法:

    以下函数对所有序列都有用(序列:字符串、列表、 元组)(备注pyhton3移除了cmp的函数)

    以下函数仅对列表生效

    10、operator运算符模块:

    python3已废弃cmp()函数,所以用新函数(eq、lt、le、gt、ge)替换

    import operator             #导入运算符模块
    a=4
    b=9
    print (operator.eq(a,b))    #等于
    print (operator.lt(a,b))    #小于
    print (operator.le(a,b))    #小于等于
    print (operator.gt(a,b))    #大于
    print (operator.ge(a,b)) #大于等于

    运行结果:
    False
    True
    True
    False
    False

     11、sort()函数:

    sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

    语法:

    list.sort(key=None,reverse=False)

    • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
    • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)

     该方法没有返回值,但是对列表的对象进行排序

    list1=[(2,3,3),(4,4,5,3,3),(4,5)]
    
    #使用默认参数进行排序,即按元组的第一个元素来排序
    list1.sort()
    print (list1)
    
    #按下标为1,即第2个元素,倒序排序
    list1.sort(key=lambda x:x[1],reverse=True)
    print (list1)
    
    #先按下标为0,即第1个元素排序,如果第1个元素相同,则按下标为1,即第2个元素排倒序排序
    list1.sort(key=lambda x:(x[0],x[1]),reverse=True)
    print (list1)
    
    #按元组的长度排序
    list1.sort(key=lambda tup:len(tup))
    print (list1)

    运行结果:
    [(2, 3, 3), (4, 4, 5, 3, 3), (4, 5)]
    [(4, 5), (4, 4, 5, 3, 3), (2, 3, 3)]
    [(4, 5), (4, 4, 5, 3, 3), (2, 3, 3)]
    [(4, 5), (2, 3, 3), (4, 4, 5, 3, 3)]

    注意:笔者从此篇开始用的是python3.7,此前是python2.7。后续会继续更新,有任何问题欢迎留言交流

  • 相关阅读:
    010-SaltStack及SaltStack Web UI安装部署
    004-linux下配置rsyslog日志收集服务器案例 rsyslog+loganalyzer日志服务器,无法添加报表模板解决
    003-centos7:rsyslog简单配置客户端和服务器端
    002-loganalyzer装完报错no syslog records found
    001-CentOS 7系统搭建Rsyslog+LogAnalyzer解决交换机日志收
    009(1)-saltstack之salt-ssh的使用及配置管理LAMP状态的实现
    009-saltstack之salt-ssh的使用及配置管理LAMP状态的实现
    008-saltstack之salt-ssh
    CentOS7+ 普通用户使用密钥登陆服务器(同时禁用root登陆)
    jq如何判断是否存在某个指定的style样式
  • 原文地址:https://www.cnblogs.com/wenxiacui/p/10962086.html
Copyright © 2011-2022 走看看