zoukankan      html  css  js  c++  java
  • 十二、列表(list)的初识和操作方法

    1.列表的初识

    • why:int bool str

      • str:存储少量数据 ,如:'123 True 太白'

      • str:无论对其切片还是进行任何其他操作,获取的内容全部都是str的类型。存储的数据类型单一

    • what:list

      • l1 = [100,'alex',True,[1,2,3]] 承载任意数据类型,存储大量的数据

      • python常用的容器型数据类型。list 列表,其他语言:Java:数组

      • 列表是有序的,可索引、切片(步长) 

      

    2.索引、切片(步长)

    li = [100, '太白', True, [1, 2, 3]]
    # 索引
    print(li[0], type(li[0]))                 #100 <class 'int'>
    print(li[1], type(li[1]))                 #太白 <class 'str'>
    print(li[-1])                                #[1, 2, 3] <class 'list'>

    # 切片 (顾头不顾腚)
    print(li[:2]) #[100, '太白']

    #相关练习题:
    li = [1, 3, 2, "a", 4, "b", 5,"c"]
    通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
    l1 = li [:3]
    print(l1)

    通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
    l2 = li [3:-2]
    print(l2)

    通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
    l4 = li [1:-2:2]
    print(l4)

    通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
    l6 = li [-3:0:-2]
    print(l6)

    3.列表的创建

    • 方式一:

    l1 = [1, 2, 'Alex']

    • 方式二

    l1 = list()
    print(l1)
    #结果:[],空列表的创建


    l1 = list('fhdsjkafsdafhsdfhsdaf')       #将内容中的每个元素迭代放在列表当中
    print(l1)
    #结果:['f', 'h', 'd', 's', 'j', 'k', 'a', 'f', 's', 'd', 'a', 'f', 'h', 's', 'd', 'f', 'h', 's', 'd', 'a', 'f']

    • 方式三:列表推导式,后面讲

    4.列表的增删改查

    l1 = ['太白','女神','吴老师','肖帮主','yan']

    (1)增

    • append:追加

       使用方法: l1.append('xx')

    比如:

    l1 = ['太白','女神','吴老师','肖帮主','yan']
    l1.append('xx')
    print(l1)
    #结果['太白', '女神', '吴老师', '肖帮主', 'yan', 'xx']
    #注意:不能打印 print(l1.append('xx')),是没有意义的

    • insert: 插入

          使用方法: l1.insert(位置,内容)

    比如:

    l1 = ['太白','女神','吴老师','肖帮主','yan']
    l1.insert(2,'wusir')
    print(l1)
    #结果['太白', '女神', 'wusir', '吴老师', '肖帮主', 'yan']

    • extend 迭代着追加

       使用方法:l1.extend('内容',[内容],.....)

    比如:

    l1 = ['太白','女神','吴老师','肖帮主','yan']
    l1.extend('abcd')
    l1.extend(['alex',])
    l1.extend(['alex', 1, 3])
    print(l1)
    #结果['太白', '女神', '吴老师', '肖帮主', 'yan', 'a', 'b', 'c', 'd', 'alex', 'alex', 1, 3]

    (2)删:

    • pop :按照索引位置删除(返回的是删除的元素),默认删除最后一个

       使用方法:l1.pop(位置)

    比如:

    l1 = ['太白','女神','吴老师','肖帮主','yan']
    l1.pop(-2)                             # 按照索引删除
    print(l1)
    #结果['太白', '女神', '吴老师', 'yan']

    l1 = ['太白','女神','吴老师','肖帮主','yan']
    print(l1.pop(-2))                    #返回的是删除的元素
    #结果 肖帮主

    l1.pop()                                 # 默认删除最后一个
    print(l1)
    #结果['太白', '女神', '吴老师', '肖帮主']

    • remove :按指定元素删除,如果有重名元素,默认从左数第一个删除

       使用方法:l1.remove('内容')

    比如:

    l1 = ['太白','女神','吴老师','肖帮主','yan']
    l1.remove('吴老师')
    print(l1)
    #结果['太白', '女神', '肖帮主', 'yan']

    #如果有重名元素
    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    l1.remove('吴老师')
    print(l1)
    #结果['太白', '女神', '吴老师', '肖帮主', 'yan']

    • clear :清空元素(了解)

       使用方法:l1.clear()

    比如:

    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    l1.clear()          # 清空
    print(l1)
    #结果[]

    • del:删除

    (1)按索引删除:del l1[位置]

    比如:

    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    del l1[-1]
    print(l1)
    #结果['吴老师', '太白', '女神', '吴老师', '肖帮主']

    (2)按切片(步长)

    比如:

    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    del l1[::2]
    print(l1)
    #结果['太白', '吴老师', 'yan']

    (3)改:

    • 按索引改

    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    l1[0] = '男神'
    print(l1)
    #结果['男神', '太白', '女神', '吴老师', '肖帮主', 'yan']

    • 按切片(了解)

    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    l1[2:] = 'fsdafs'
    print(l1)
    #结果['吴老师', '太白', 'f', 's', 'd', 'a', 'f', 's']

    • 按切片(步长)(了解)

    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    l1[::2] = 'abc'             #改的部分要和补充的数量需要对应
    print(l1)
    #结果['a', '太白', 'b', '吴老师', 'c', 'yan']

    l1[::2] = 'abcd'
    print(l1)                      #数量不对应,会报错

    (4)查:

    • 按索引、按切片(步长)
    • for 循环

    比如:

    l1 = ['吴老师','太白','女神','吴老师','肖帮主','yan']
    for i in l1:
      print(i)
    #结果
    吴老师
    太白
    女神
    吴老师
    肖帮主
    yan

    练习:

    li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
    # 计算列表的长度并输出
    count = 0
    for i in li:
      count += 1
    print(count)

    # 列表中追加元素"seven",并输出添加后的列表
    li.append('seven')
    print(li)

    # 请在列表的第1个位置插入元素"Tony",并输出添加后的列表
    li.insert(0,'Tony')
    print(li)

    # 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
    li[1] = "Kelly"
    print(li)

    # 请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
    li.extend([1,"a",3,4,"heart"])
    print(li)

     

    5.列表的补充

    list补充:

    • count

    • index:通过元素找索引

    • sort(**):

      • 默认从小到大排序;

      • l1.sort(reverse = True) 从大到小

      • l1.reverse() 反转

    • 列表可相加

      列表可与数字相乘


    # count
    # index
    l1 = ['太白', '123', '女神', '大壮']
    print(l1.count('太白'))   #1
    print(l1.index('123'))    #1

    # sort **
    #默认从小到大
    l1 = [5, 4, 3, 7, 8, 6, 1, 9]
    l1.sort()
    print(l1)
    #[1, 3, 4, 5, 6, 7, 8, 9]

    #从大到小
    l1 = [5, 4, 3, 7, 8, 6, 1, 9]
    l1.sort(reverse=True)
    print(l1)
    #[9, 8, 7, 6, 5, 4, 3, 1]

    l1 = [5, 4, 3, 7, 8, 6, 1, 9]
    l1.reverse()
    print(l1)
    #反转
    #[9, 1, 6, 8, 7, 3, 4, 5]

    # 列表可以相加
    l1 = [1, 2, 3]
    l2 = [1, 2, 3, '太白', '123', '女神']
    print(l1 + l2)
    #[1, 2, 3, 1, 2, 3, '太白', '123', '女神']

    #列表与数字相乘
    l1 = [1, 'daf', 3]
    l2 = l1*3
    print(l2)
    #[1, 'daf', 3, 1, 'daf', 3, 1, 'daf', 3]

    6.列表的嵌套

    l1 = [1, 2, 'taibai', [1, 'alex', 3,]]

    # 1, 将l1中的'taibai'变成大写并放回原处。
    l1[2] = 'TAIBAI'
    l1[2] = l1[2].upper() #第二种方法
    print(l1)

    # 2,给小列表[1,'alex',3,]追加一个元素,'老男孩教育'。
    l1[-1].append('老男孩教育')
    print(l1)

    # 3,将列表中的'alex'通过字符串拼接的方式在列表中变成'alexsb'
    a = l1[-1]
    a[1] = a[1]+ 'sb '
    print(l1)

    l1[-1][1] = l1[-1][1] + 'sb'        #第二种方法
    print(l1)

    l1[-1][1] += 'sb'                      #第三种方法
    print(l1)

  • 相关阅读:
    处理缺失值
    数据清理
    数据聚合
    ajax动态生成table
    MangeEmpHashMap
    Arraylist的雇员管理操作
    jsp获取一个对象和list对象
    Controller比较两个对象discs、outlets中的元素是否相等。相同则相应的checkbox为checked
    限制input text输入的类型(数字,字母,小数点)
    联合主键的映射运用
  • 原文地址:https://www.cnblogs.com/yangzm/p/10808762.html
Copyright © 2011-2022 走看看