zoukankan      html  css  js  c++  java
  • python 中的列表(list)

    一、生成一个列表

    • 直接生成
      L1 = [1, 2, 3, 4, 5]
    • 列表解析式
    >>> L2 = [x for x in range(1, 10, 2)]  #从1到10的迭代,步长为2,形成一个列表
    >>> print(L2)
    [1, 3, 5, 7, 9]
    >>> 
    >>> [x for x in range(10) if x <5]   #从0到10当中,小于5的数字形成列表
    [0, 1, 2, 3, 4]
    

    二、访问列表及列表的切片

    list[index] 访问列表中索引处的值
    
    L3 = ["A-0","B-1","C-2",'D-3',"E-4","F-5"]
    print("第零个元素:",L3[0],"\n第4个元素:",L3[4])
    
    #结果为:
    第零个元素: A-0 
    第4个元素: E-4
    
    list[0: 3] 对列表中的第0个到第3个元素进行切片,同理还可以 list[ : 3]  或者list[3:6] 
    
    L4 = ["北京", "上海", "广州", "深圳", "天津", "重庆", "南京", "成都", "武汉", "长沙", "杭州", "昆明"]
    print(len(L4))          #len()函数返回列表长度
    print(L4[0: 4])        #切片从第0个到第4个,输入0,1,2,3这几个索引位置的元素
    
    #输出为:
    12
    ['北京', '上海', '广州', '深圳']
    
    #----------------------------------分割线-------------------------------------
    print(L4[4: 8])        #中间切片
    print(L4[9: -1])        #第9到-1个
    print(L4[10: ])         #第10 到最后
    
    #输出为:
    ['天津', '重庆', '南京', '成都']
    ['长沙', '杭州']
    ['杭州', '昆明']
    
    #----------------------------------分割线-------------------------------------
    #补充,字符串对象是可迭代的,也可以这样用哦!
    name = "Josh Vietti"
    print(len(name))
    print(name[5:])
    
    #结果为:
    11
    Vietti
    

    三、列表的函数及操作

    3.1 列表的函数

    1、len(list) 返回列表长度,字符串也可以这么求长度,以及切片等,如上程序段,最后字符串部分。
    2、max(list) 返回列表中的最大值
    3、min(list) 返回列表中最小值
    4、list(seq) 把元组变为列表也是可以的
    

    注意同类型的数据才能比较大小

    l = [1, 3, 5, 4, 8, 11, 7]
    print("最大值为:max(l) = ",max(l),"\n最小值为:min(l) = ",min(l))
    tuple1 = (1,3,5,"s")
    l2 = list(tuple1)
    print("将元组转变为列表 list(tuple1) --->:",l2)
    
    try:
        max(l2)       #l2列表中既有int又有str,数据类型不同不能比较
    except TypeError as e:
        print(e)
    
    #以上程序运行结果为:
    最大值为:max(l) =  11 
    最小值为:min(l) =  1
    将元组转变为列表 list(tuple1) --->: [1, 3, 5, 's']
    unorderable types: str() > int()
    

    3.2 列表的操作

    1、list.append(obj)  在列表末尾添加对象
    2、list.count(obj)     统计某元素在列表中出现的次数
    3、list.extend(list_2)  将list_2列表追加到列表后,融合形成一个新列表
    4、list.index(ojb)    从列表中找出第一次匹配到该元素的位置
    5、list.insert(index, obj)   在index 索引位置插入对象obj
    6、list.pop(index)  删除并且返回索引处的值,默认删除列表最后一个值
    7、list.remove(obj) 移除列表中obj对象
    8、list.reverse()  将列表元素反转
    9、list.sort(key = func, reverse = False)   排序列表,key参数默认None,接受函数作为参数,会将函数应用于列表中的每一个元素。reverse参数False为正向排序,True为反向排序
    10、list.clear()  清空列表中所有元素,也可以用 del list[ : ] 来清空列表,注意 del list 会把整个列表删除
    
    L1 = ["A", "B", "A", "C"]
    L2 = ["E", "F"]
    L1.append("d")    #1、list.append() 往L1末尾添加 'd'
    num_A = L1.count("A") #2、list.count() 统计L1中字符A的个数
    
    print("L1:", L1,"\n统计L1中字符A的个数:",num_A)
    
    L1.extend(L2)   #3、list.extend() 将L2融合到L1中
    index_d = L1.index("d")   #4、list.index() 查找'd'的索引
    print("新L1:", L1,"\nd的索引为:", index_d)
    
    #----------------------------------分割线-------------------------------------
    #结果为:
    L1: ['A', 'B', 'A', 'C', 'd'] 
    统计L1中字符A的个数: 2
    新L1: ['A', 'B', 'A', 'C', 'd', 'E', 'F'] 
    d的索引为: 4
    
    #----------------------------------分割线-------------------------------------
    L1.remove("d")  #list.remove() 移除L1当中的'd'
    
    print("移除'd'后的L1:", L1)
    L1.insert(1, "D") #list.insert() 往L1索引1处插入大写'D'
    L2.insert(2,3)    #list.insert() 往L2索引2处插入数字3
    
    print("新L1:", L1, "\nL2:", L2)
    
    #----------------------------------分割线-------------------------------------
    #结果为:
    移除'd'后的L1: ['A', 'B', 'A', 'C', 'E', 'F']
    新L1: ['A', 'D', 'B', 'A', 'C', 'E', 'F'] 
    L2: ['E', 'F', 3]
    
    #----------------------------------分割线-------------------------------------
    print("删除并返回L1中的第五个元素:", L1.pop(5),"\nL1:",L1)       #使用list.pop(index) 删除指定索引的值
    print("删除最后一个元素:", L1.pop(), '\n{0: ^8}:'.format("L1"), L1)
    L1.reverse()
    print('反置列表:', L1)
    L1.clear()    #list.clear()清空列表
     del L2[:]    #del list[:] 清空列表
    print('清空列表L1:', L1)
    print('清空列表L2:',L2)
    
    #----------------------------------分割线-------------------------------------
    #结果为:
    删除并返回L1中的第五个元素: E 
    L1: ['A', 'D', 'B', 'A', 'C', 'F']
    删除最后一个元素: F 
       L1   : ['A', 'D', 'B', 'A', 'C']
    反置列表: ['C', 'A', 'B', 'D', 'A']
    清空列表L1: []
    清空列表L2: []
    
    • list.sort()的应用
    l_test = ["a", "B", "c"]
    l_test.sort(reverse= True)
    print("默认key=None直接排序,reverse= True 反排:", l_test)   #反向排序
    l_test.sort(key=str.upper)
    print("默认reverse,key=str.upper 将所有字符大写:", l_test)   #正向排序
    
    #----------------------------------分割线-------------------------------------
    #结果为:
    默认key=None直接排序,reverse= True 反排: ['c', 'a', 'B']
    默认reverse,key=str.upper 将所有字符大写: ['a', 'B', 'c']
    
    人生还有意义。那一定是还在找存在的理由
  • 相关阅读:
    select 的readonly效果
    HTML5与CSS3设计模式
    关于htons和htonl
    Http Range
    如何隐藏aspx文件格式,变成html
    UITableView的cell 自定义 高度,样式
    gson 数据里面设置特殊字符不转换为十六进制
    HDU2164:Rock, Paper, or Scissors?
    黑马程序员java基础学习网络编程2
    HDU2137:circumgyrate the string
  • 原文地址:https://www.cnblogs.com/shiqi17/p/9289898.html
Copyright © 2011-2022 走看看