• python列表操作


    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。如    list = ['a','b',2,5,'1']   

    1、新建列表

    stus = []   #创建空列表
    stus1 = list()   #创建空列表
    print(stus)
    print(stus1)
    stus = ['范冰冰','维达','SOON','上述'] #创建非空列表
    print(stus)

    2、列表增加元素

    stus = ['范冰冰','维达','SOON','上述']
    stus.append('莉莉') #在列表末尾增加一个元素
    stus.insert(2,'Lucy') #insert可以指定元素插入的位置
    print(stus)

    3、列表长度

    stus = ['范冰冰','维达','SOON','上述']
    
    print(len(stus))

    4、修改列表元素

    stus = ['范冰冰','维达','SOON','上述']
    
    stus[3] = '哈哈'  #直接找到下标,对元素赋值
    print(stus)

    5、列表删除元素

    stus = ['范冰冰','维达','SOON','上述']
    stus.append('莉莉') #在列表末尾增加一个元素
    stus.insert(2,'Lucy') #insert可以指定插入的位置
    print(stus)
    print(len(stus))
    stus[3] = '哈哈'
    print(stus)
    stus.pop()  #默认删除最后一个元素
    stus.pop(2)  #删除下标为2的元素
    stus.remove('范冰冰')  #传入元素值,直接删除元素。 remove时必须传值
    del stus[1]  #删除指定下标的元素
    print(stus)
    stus.clear()  #清空列表
    print(stus)

    stus.pop()、stus.remove()、 del stus[] 删除不存在的值时都会报错。

    6、查询元素,查询元素下标

    stus = ['范冰冰','维达','SOON','上述']
    print(stus[2]) #查找指定下标的元素
    print(stus.count('')) #查找指定元素出现的次数,注意一个列表元素按照一个整体处理,该值返回0
    print(stus.index('维达'))  #按照元素名称查询元素下标

    注意,按照元素查询下标的时候,若列表中有多个该元素,则返回第一次出现的该元素的下标。如果元素不存在,则报错

    7、列表反转

    stus = ['范冰冰','维达','SOON','上述']
    stus1 =[1,3,6,4,2,6,8,3]
    stus.reverse()#直接列表反转
    stus2 = list(reversed(stus1))#使用list函数进行反转
    print(stus2)  
    print(stus)
    #注意,反转的时候不能直接print(stus.reverse())

    另外,按照列表切片也可以进行反转。

    print(stus[::-1])   

    8、列表排序

    stus1 =[1,3,6,4,2,6,8,3]
    stus1.sort()#直接对列表进行排序
    stus2 = list(sorted(stus1))  #按照list函数进行排序
    print(stus2)

    倒序排列

    stus1 =[1,3,6,4,2,6,8,3]
    stus1.sort(reverse=True) #倒序排列
    stus2 = list(sorted(stus1,reverse=True))  #按照list函数进行倒序排序
    print(stus1)
    print(stus2)
    #注意,排序的时候不能直接print(stus1.sort()

    备注:排序默认按照正序排列

    9、两个列表相连

    stus = ['范冰冰','维达','SOON','上述']
    stus1 =[1,3,6,4,2,6,8,3]
    stus1.extend(stus)  #两个列表相连,把一个list中的元素添加到另外一个list中
    print(stus1)
    #注意写法,不能直接print(stu1.extend(stus))

    也可以连接自己,把自己输出两遍

    10、列表操作符

    列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

    Python 表达式结果描述
    len([1, 2, 3]) 3 长度
    [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
    ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
    3 in [1, 2, 3] True 元素是否存在于列表中
    for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代

    11、列表截取--切片

    切片是list取值的一种方式。切片取值是顾头不顾尾,取到尾巴的时候要加1,前面一个下标,后面一个下标,中间是冒号,下标从0开始时,前面可以不写。

    stus = ['范冰冰','维达','SOON','上述']
    print(stus[2])
    print(stus[-2])
    print(stus[-2:])
    print(stus[1:2])
    print(stus[1:4:2])#步长为2时,中间隔一个
    print(stus[::])  #复制一个新列表
    print(stus[::-1]) #将原来的list倒序输出
    • print(stu0[2:5])
    • print(stu0[:5])代表从最前面开始取值
    • print(str0[4:10]),取后面的值,要是取到末尾,那么后面的下标可以不用写 print(str0[4:])
    • 什么下标都不写的时候,相当于是复制一个新的List,如 new_stu0=stu0[:]
    • New_stu = stu[0],也是复制一个,但是在内存中的占用不一样
    • print(stu0[0:10:1]) ,再加一个冒号代表步长,代表隔一个或者隔几个取一个
    • print(stu0[0:10:2]),2的时候是跳过一个元素取一个值,
    • print(stu0[::-1])步长为负数时,从右往左取值,步长是正数时,是从左往右取

    12、列表循环

    stus = ['杨静', '王志华', '王银梅', '乔美玲',
            '段鑫琪', '王立文', '赵燕',
            '杨华', '周永波', '杨静']
    for index,stu in enumerate(stus,1):#同时取到下标和值
        print("%s ==> %s"%(index,stu))

    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。参数sequence为需要循环的序列,start为下标起始位置。

    普通的list循环:可与上面对比

    stus = ['杨静', '王志华', '王银梅', '乔美玲',
            '段鑫琪', '王立文', '赵燕',
            '杨华', '周永波', '杨静']
    
    i = 0
    for ele in stus:
        print(i,stus[i])
        i = i +1

    如果直接循环一个list,那么每次取的就是list里面的每一个元素

    13、多维数组

    stu0 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    stu1 = [1,2,3,4, ['a','b','c'], ['',''] ]
    stu1[5][0] = '哈哈'
    print(stu1)
    stu2 = [1,2,3,4,['a',['','',''],'b','c', ] ]#3维数组
    stu2[4][1].insert(0,'呵呵呵')
    print(stu2)
  • 相关阅读:
    Python xlrd.biffh.XLRDError: Excel xlsx file; not supported
    Python 报/usr/bin/python^M: bad interpreter: No such file or directory
    Linux curl命令
    课程学习总结报告
    信息安全实验二
    结合中断上下文切换和进程上下文切换分析linux内核的一般执行过程
    深入理解Linux系统调用
    基于mykernel2.0编写一个操作系统内核
    如何评测软件工程知识技能水平
    创新产品的需求分析:未来图书会是什么样子?
  • 原文地址:https://www.cnblogs.com/blueteer/p/10000223.html
Copyright © 2020-2023  润新知