zoukankan      html  css  js  c++  java
  • Python基础学习05--列表

    列表

    列表就有顺序的数据的组合

    说到顺序,就能想到字符串中提到的序列(suqence);列表同样有序列,而且他的序列与字符串一致!如下图

    创建列表

    # 1、创建一个空列表
    list1 = []
    # # type是内置函数,查看数据的类型
    print('list1的数据类型为:',type(list1))
    print('list1 = ',list1)
    
    # 创建存在数据的列表
    list2 = [33]
    print('list2的数据类型为:',type(list2))
    print('list2 = ',list2)
    
    # 创建存在多数据的列表
    list3 = [3,1,5,7,9]
    print('list3的数据类型为:',type(list3))
    print('list3 = ',list3)

    输出的结果如下:

    list1的数据类型为: <class 'list'>
    list1 =  []
    list2的数据类型为:
    <class 'list'> list2 = [33]
    list3的数据类型为:
    <class 'list'> list3 = [3, 1, 5, 7, 9]

    列表中的数据可包含python中所有的数据类型

    l1 = '我是变量'
    list4 = [1,1.1,l1,'字符串',True,1+1,[4/2,3],]
    print('list4的数据类型为:',type(list4))
    print('list4 = ',list4)

    输出结果如下:

    list4的数据类型为: <class 'list'>
    list4 =  [1, 1.1, '我是变量', '字符串', True, 2, [2.0, 3]]

     列表的sequence(序列)操作

    上文有提到,列表同字符串一样,是有序列的,存在序列,就支持切片操作!

    l1 = '我是变量'
    list5 = [1,1.1,l1,'字符串',True,1+1,[4/2,3],]
    print('list5的值:',list5)
    # 查看列表中某一值
    print('list5[4]的值:',list5[4])
    
    # 查看列表中字符串中某一元素
    print('list5[3][1]的值:',list5[3][1])
    # 查看列表中的列表中某一元素
    print('list5[-1][1]的值:',list5[-1][1])
    
    # 切片操作
    # 再次强调,切片操作所切内容左含右不含!
    print('list5[1:4]的值:',list5[1:4])
    # 切片操作可以设置步长,且步长默认为1 print('list5[1:4]的值:',list5[1:4:2])
    # 下标可以超出列表长度 print('list5[4:11]的值:',list5[4:11]) # 所切的下标值可以为空,即左边下标值默认为0,右边默认值为最大下标+1 print('list5[:]的值:',list5[:]) print('list5[1:]的值:',list5[1:]) print('list5[:4]的值:',list5[:4]) # 切片同样可以对负下标进行操作 print('list5[-5:-1]的值:',list5[-5:-1])

    输出结果如下:

    [1, 1.1, '我是变量', '字符串', True, 2, [2.0, 3]]
    
    list5[4]的值: True
    
    list5[3][1]的值: 符
    list5[-1][1]的值: 3
    
    list5[1:4]的值: [1.1, '我是变量', '字符串']
    list5[1:4:1]的值: [1.1, '字符串']
    list5[4:11]的值: [True, 2, [2.0, 3]]
    
    list5[:]的值: [1, 1.1, '我是变量', '字符串', True, 2, [2.0, 3]]
    list5[1:]的值: [1.1, '我是变量', '字符串', True, 2, [2.0, 3]]
    list5[:4]的值: [1, 1.1, '我是变量', '字符串']
    
    list5[-5:-1]的值: ['我是变量', '字符串', True, 2]

    切片操作生成的是一个全新的列表

    # 这里引用一个内置函数id(),作用是显示出一个变量或者数据的唯一确定编号
    # 例如:
    a = 1
    b = '1'
    print('a的id为:',id(a))
    print('b的id为:',id(b))
    
    c = a
    print('c的id为:',id(c))

    输出结果如下:

    a的id为: 1467867920
    b的id为: 18602144
    
    c的id为: 1467867920

    以下对切片操作进行校验,生成的列表是否为新列表

    # 通过id可以直接判断出分片是从新生成了一份数据还是使用的同一份数据
    list6 = [3,'3',101,5.5]
    list7 = list6[:]
    list8 = list7
    
    # 如果两个id值一样,则表明分片产生的列表是使用的同一地址同一份数据
    # 否则,则表明切片是从新生成了一份数据,即一个新的列表,然后把数值拷贝到新列表中
    print('list6的id为:',id(list6))
    print('list7的id为:',id(list7))
    print('list8的id为:',id(list8))

    输出结果如下:

    list6的id为: 47179336
    
    list7的id为: 47179416
    
    list8的id为: 47179416

    可以看到list7是由list6切片而来,然而id(list6) != id(list7)

     列表的常用方法

    1、append()

        在列表的尾部增加一个元素

    list9 = [1,2,3,4]
    print('list9-前 :',list9)
    
    list9.append(5)
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4]
    list9-后 : [1, 2, 3, 4, 5]

    2、insert()

        在列表的指定位置添加元素

    list9 = [1,2,3,4]
    print('list9-前 :',list9)
    
    list9.insert(2,5)       # 在列表的下标值为2的位置添加5
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4]
    list9-后 : [1, 2, 5, 3, 4]

    3、del

         删除列表中指定下标的元素

    list9 = [1,2,3,4]
    print('list9-前 :',list9)
    
    del list9[1]        # 删除列表下标值为1的元素
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4]
    list9-后 : [1, 3, 4]

    4、pop()

        移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

    list9 = [1,2,3,4]
    print('list9-前 :',list9)
    
    a = list9.pop()
    print(' 移除的值 :',a)
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4]
    
     移除的值 : 4
    list9-后 : [1, 2, 3]

    5、remove()

        移除列表中某个值的第一个匹配项

    list9 = [1,2,3,4,3]
    print('list9-前 :',list9)
    
    list9.remove(3)     # 移除第一个元素为3的值
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4, 3]
    list9-后 : [1, 2, 4, 3]

    6、clear()

        清空列表

    list9 = [1,2,3,4,3]
    print('list9-前 :',list9)
    
    list9.clear()
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4, 3]
    list9-后 : []

    7、extend()

        在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

    list9 = [1,2,3,4,3]
    print('list9-前 :',list9)
    print('list9-前 :',id(list9))
    
    list10 = [1,1,1,1]
    print('list10 :',list10)
    
    list9.extend(list10)
    print('list9-后 :',list9)
    print('list9-后 :',id(list10))
    list9-前 : [1, 2, 3, 4, 3]
    list9-前 : 58006344
    
    list10 : [1, 1, 1, 1]
    
    list9-后 : [1, 2, 3, 4, 3, 1, 1, 1, 1]
    list9-后 : 59155240

    8、count()

        统计某个元素在列表中出现的次数

    list9 = [1,2,3,4,3]
    print('list9 :',list9)
    
    n = list9.count(3)
    print('3在列表中出现:',n,'')
    list9 : [1, 2, 3, 4, 3]
    3在列表中出现: 2 次

    9、reverse()

        翻转列表内容,原地翻转

    list9 = [1,2,3,4,3]
    print('list9-前 :',list9)
    
    
    list9.reverse()
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4, 3]
    list9-后 : [3, 4, 3, 2, 1]

    10、sort()

        列表正序排列

    list9 = [1,2,3,4,3]
    print('list9-前 :',list9)
    
    list9.sort()
    print('list9-后 :',list9)
    list9-前 : [1, 2, 3, 4, 3]
    list9-后 : [1, 2, 3, 3, 4]
  • 相关阅读:
    leetcode -- Merge Two Sorted Lists
    leetcode -- Rotate List
    leetcode -- Merge Intervals
    leetcode -- Insert Interval
    Egret入门学习日记 --- 第八篇(书中 2.0~2.6节 内容)
    Egret入门学习日记 --- 第七篇(书中 3.9节 内容)
    Egret入门学习日记 --- 第五篇(书中 3.5节 内容)
    Egret入门学习日记 --- 第四篇(书中 3.1~3.3 内容)
    Egret入门学习日记 --- 第三篇 (书中 3.4 内容)
    Egret入门学习日记 --- 第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容)
  • 原文地址:https://www.cnblogs.com/wilson-5133/p/10350997.html
Copyright © 2011-2022 走看看