zoukankan      html  css  js  c++  java
  • 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秒

     

  • 相关阅读:
    dockor 在windows的安装步骤
    go gin框架安装流程
    go 引入包之后没有起作用
    go get github.com/gin-gonic/gin 下载失败
    group 与having使用例子
    php把服务器上的资源下载并保存本地
    mysql 自我连接表
    laravel 队列的简单例子
    rem和em,px的使用
    带进度条的自动跳转页面代码
  • 原文地址:https://www.cnblogs.com/st-st/p/9438243.html
Copyright © 2011-2022 走看看