• Python基础Day4


    一、列表

    ①列表list是基础数据类型之一

    ②列表可以存储大量数据

    ③列表可索引、可切片、可加步长

    ④其他语言中也有列表的概念:JS 数组

    列表默认存4个值,扩展的话会扩展一倍,即4,8,16... 

    二、列表的索引、切片、切片+步长

    ①列表的索引

    Li = ['a',100,True,[1,2,3],{'name':'xiaoming','age':18},(111,222,333)]
    print(Li[0])
    print(Li[-1])
    print(Li[3])
    
    # 结果
    a
    (111, 222, 333)
    [1, 2, 3]

     

    ②列表的切片

    Li = ['a',100,True,[1,2,3],{'name':'xiaoming','age':18},(111,222,333)]
    print(Li[1:3])
    print(Li[:5])
    print(Li[-4:])
    
    # 结果
    [100, True]
    ['a', 100, True, [1, 2, 3], {'name': 'xiaoming', 'age': 18}]
    [True, [1, 2, 3], {'name': 'xiaoming', 'age': 18}, (111, 222, 333)]

     

    ③列表的切片+步长

    Li = ['a',100,True,[1,2,3],{'name':'xiaoming','age':18},(111,222,333)]
    print(Li[::2])
    print(Li[-1:-5:-2])
    print(Li[-1:1:-2])
    
    
    # 结果
    ['a', True, {'name': 'xiaoming', 'age': 18}]
    [(111, 222, 333), [1, 2, 3]]
    [(111, 222, 333), [1, 2, 3]]

     

    三、列表的增删该查及其他方法

    A.增:

    append(元素)      # 在列表的末尾追加元素

    Li = ['a','b','c','d','e','f','x','z']
    Li.append('qqq')        # 在列表的末尾追加元素
    Li.append('www')        # 在列表的末尾追加元素
    print(Li)
    
    # 结果
    ['a', 'b', 'c', 'd', 'e', 'f', 'x', 'z', 'qqq', 'www']

     

    insert(索引,元素)      # 在指定的索引上加入元素(内容)

    假如索引超过列表的长度,默认把内瑞追加到列表的最后

    Li = ['a','b','c','d','e','f','x','z']
    Li.insert(0,'ty')               # 在指定的索引插入内容
    Li.insert(20,'gg')              # 超过列表的长度的索引,默认会追加到列表的末尾
    print(Li)
    
    # 结果
    ['ty', 'a', 'b', 'c', 'd', 'e', 'f', 'x', 'z', 'gg']

     

    extend(元素)        # 迭代地追加,将迭代对象的最小元素逐个添加

    lis = [1,2,3,4,5,6]
    lis.extend('abc')
    print(lis)
    lis.extend(['qqq','www'])
    print(lis)
    
    # 结果
    [1, 2, 3, 4, 5, 6, 'a', 'b', 'c']
    [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'qqq', 'www']

     

    B.删除

    pop(索引)          # 通过索引删除元素,返回值是被删除的元素

    lis = [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'qqq', 'www']
    a = lis.pop(3)                                          # 将被删除的值存储到变量中
    print(a)                
    print(lis)
    
    # 结果
    4
    [1, 2, 3, 5, 6, 'a', 'b', 'c', 'qqq', 'www']

     

    remove(元素)        # 按元素删除,删除的列表中的第一个找到的元素

    lis = [1, 2, 3, 4, 5, 4, 'a', 'b', 'c', 'qqq', 'www']
    lis.remove(4)                                           # 删除列表中的第一个元素是4的值
    print(lis)
    
    # 结果
    [1, 2, 3, 5, 4, 'a', 'b', 'c', 'qqq', 'www']

     

    clear()          # 将列表清空

    lis = [1, 2, 3, 4, 5, 4, 'a', 'b', 'c', 'qqq', 'www']
    lis.clear()
    print(lis)
    
    # 结果
    []

     

    del          # 删除

    ① 按索引删除

    lis = [1, 2, 3, 4, 5, 4, 'a', 'b', 'c', 'qqq', 'www']
    del lis[3]
    del lis[-1]
    print(lis)
    
    # 结果
    [1, 2, 3, 5, 4, 'a', 'b', 'c', 'qqq']

     

    ② 按切片删除

    lis = [1, 2, 3, 4, 5, 4, 'a', 'b', 'c', 'qqq', 'www']
    del lis[3:7]
    print(lis)
    
    del lis[-3:-1]
    print(lis)
    
    # 结果
    [1, 2, 3, 'b', 'c', 'qqq', 'www']
    [1, 2, 3, 'b', 'www']

     

    ③ 按切片+步长删除

    lis = [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'qqq', 'www']
    del lis[-1:2:-2]
    print(lis)
    
    del lis[3:-1:2]
    print(lis)
    
    # 结果
    [1, 2, 3, 4, 6, 'b', 'qqq']
    [1, 2, 3, 6, 'qqq']

     

    ④ 在内存级别删除整个列表

    lis = [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'qqq', 'www']
    del lis
    print(lis)
    
    # 结果
    NameError: name 'lis' is not defined 
    报错:找不到lis

     

    C 修改:

    ① 按索引修改

    lis = [1,'a',2,'b',3,'c',5,'z',8,'y']
    lis[3] = 10
    lis[-1] = 'x'
    print(lis)
    
    # 结果
    [1, 'a', 2, 10, 3, 'c', 5, 'z', 8, 'x']

     

    ② 按切片修改

    原理:将列表切片的部分清空,将内容迭代地添加

    lis = [1,2,3,4,5,6,7,8]
    lis[2:5] = 'abczxcqwe'
    print(lis)
    
    # 结果
    [1, 2, 'a', 'b', 'c', 'z', 'x', 'c', 'q', 'w', 'e', 6, 7, 8]

     

    ③ 按切片+步长修改    # 必须一一对应修改,修改的元素不能多也不能少

    lis = [1,2,3,4,5,6,7,8]
    lis[3:-2:2] = 'ac'
    print(lis)
    
    # 结果
    [1, 2, 3, 'a', 5, 'c', 7, 8]

     

    以下的方式修改会报错:

    lis = [1,2,3,4,5,6,7,8]
    lis[3:-2:2] = 'a'
    print(lis)
    
    # 结果
    报错ValueError: attempt to assign sequence of size 1 to extended slice of size 2

     

    D.查询

    ① 按索引查询

    lis = [1,2,3,4,5,6,7,8]
    print(lis[0])
    print(lis[-1])
    
    # 结果
    1
    8

      

    ② 按切片查询

    lis = [1,2,3,4,5,6,7,8]
    print(lis[2:-1])
    print(lis[:6])
    print(lis[-5:])
    
    # 结果
    [3, 4, 5, 6, 7]
    [1, 2, 3, 4, 5, 6]
    [4, 5, 6, 7, 8]

     

    ③ 按切片+步长

    lis = [1,2,3,4,5,6,7,8]
    print(lis[-1:-5:-1])
    print(lis[3:-2:2])
    
    # 结果
    [8, 7, 6, 5]
    [4, 6]

     

    ④ for循环查询

    lis = [1,2,3,4,5,6,7,8]
    for i in lis:
        print(i,end=' ')
    
    # 结果
    1 2 3 4 5 6 7 8 

     

    其他方法:

    len(列表)              # 获取列表的长度

    count(元素)             # 查询元素在列表中出现的次数

    index(元素)              # 通过元素找到该元素第一个在列表中的索引,找不到会报错

    lis = [1,2,3,4,5,6,7,8]
    print(len(lis))             # 获取列表的长度
    print(lis.count(3))         # 查询元素在列表出现的次数
    print(lis.index(3))         # 通过元素找到第一个该元素在列表中的索引
    
    # 结果
    8
    1
    2

     

    sort()              # 排序

    lis = [1,3,4,1,6,2,8,0,5]
    lis.sort()
    print(lis)
    
    # 结果
    [0, 1, 1, 2, 3, 4, 5, 6, 8]

     

    sort(reverse = True)        # 反向排序

    lis = [1,3,4,1,6,2,8,0,5]
    lis.sort(reverse=True)
    print(lis)
    
    # 结果
    [8, 6, 5, 4, 3, 2, 1, 1, 0]

     

    reverse()            # 列表翻转

    lis = [1,3,4,1,6,2,8,0,5]
    lis.reverse()
    print(lis)
    
    # 结果
    [5, 0, 8, 2, 6, 1, 4, 3, 1]

     

    四、列表的嵌套

      可用索引 li[0][1]

      字符串是不可变的

      列表是容器,对其操作会影响到列表的数据

     

    五、元组

      概念:只读列表,只允许查询,不允许增删改

      元组内有列表,可以修改列表的内容

      查询的方式与列表相同

      ① 按索引查询

      ② 按切片查询

      ③ 按切片+步长

      ④ for循环查询

     

    应用场景:一些非常重要的数据,不允许所有人修改的,放在元组中

     

    六、range()    # 数字列表

    定义:自定制的数据范围的可迭代对象,可类比成列表

    一般和for循环结合使用

     

    range(start,end,步长)

    for i in range(1,10,2):
        print(i,end=' ')
    
    # 结果
    1 3 5 7 9 
    for i in range(10,1,-1):
        print(i, end=' ')
    
    # 结果
    10 9 8 7 6 5 4 3 2 

     

     

    七、in 和 not in

    判断元素是否在列表(字符串)中

    s = 'abc'
    print('a' in s)
    print('d' in s)
    print('z' not in s)
    
    # 结果
    True
    False
    True

     

    八、课外知识

    import time             # 导入time模块
    time.sleep(2)           # 设置睡眠时间2秒

     

  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/st-st/p/9438243.html
Copyright © 2020-2023  润新知