zoukankan      html  css  js  c++  java
  • python之list [ 列表 ]

    1. 列表是什么?

    • list [ ]

    • 逗号隔开

    • 是一个容器

    • 可以存放任意类型

    列表 == 书包
    书包里可以放水杯、衣服、袜子、钱包
    钱包里可以放钱、身份证件,可以包套包
    

    2. 列表能干什么?

    • 存储大量数据
    • 有序的
    • 可变的,可以被修改
    • 之前是什么格式放在列表中还是什么格式
    • 可以被迭代

    3. 列表的切

    方法一: 索引

    li = [1,2,3,"123",True]
    print(li[3],type(li[3]))
    print(li[-1],type(li[-1]))
    '''
    输出结果
    123 <class 'str'>
    True <class 'bool'>
    '''
    # 个人见解
    # 切片后还是原来的数据类型
    

    方法二: 切片

    li = [1,2,3,"123",True]
    print(li[1:4])
    '''
    [2,3,"123"]
    '''
    

    方法三: 索引切片加步长

    li = [1,2,3,"123",True]
    print(li[1:4:2])
    '''
    输出结果
    [2, '123']
    '''
    s = "alex"
    print(type(s[1:3:1]))   
    print(type(li[-1:-4:-1]))
    # 切片后还是原来的数据类型
    

    一句话总结

    列表切片:

    索引:li[2]

    切片:li[2:3]

    步长:li{2:3:2}

    4. 列表的创建

    **方法一: **直接创建

    li = [1,2,3,'123',True,[1,2,5]] 
    

    方法二: 用list将一个字符串生成

    l1 = list()
    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']
    
    # 底层使用了for循环  "abc" 可迭代的字符串类型,所以打印出如此内容
    

    一句话总结

    列表创建方法:

    li = [1,2,3,'123',True,[1,2,5]]

    l1 = list('fhdsjkafsdafhsdfhsdaf')

    5. 列表的增

    5.1 append('要插入的内容') (结果:会在末尾追加)

    方法: 直接添加元素

    li = [1,2,3,'alex',3,[1,2,3]]
    li.append('太亮') # 追加  添加在末尾  添加的操作
    '''
    输出结果
    [1,2,3,'alex',3,[1,2,3],'太亮']
    '''
    

    5.2 instert(索引,'要插入的内容') (结果:效率低)

    方法: 索引,元素

    li.insert(0,"大象")           
    # 插入 第一个参数(索引),第二参数要插入的内容
    

    5.3 extend('要添加内容')(结果:迭代添加,字符会拆开)

    方法:直接添加元素, 不可迭代对象: int bool

    li = [1,2,3]
    li.append('abc')
    print(li)
    '''
    [1,2,3,'a','b','c']
    '''
    

    5.4 列表的合并(两列表拼接成一个)

    用法:+在一起

    l2 = [1,2,3,'abc']
    l3 = [7,8,9,'hello']
    print(l2 + l3)
    [1,2,3,'abc',7,8,9,'hello']
    

    一句话总结

    列表增加方法:

    append('内容') 特点:默认字尾添加

    instert(索引,'内容') 特点:效率低

    extend('内容') 特点:迭代,字符串会拆开

    6. 列表的删

    6.1 pop('被删除元素/不写是默认删除最后元素')(结果:有返回值,返回的值是被删除的内容)

    方法一:默认删除最后一个元素且有返回值,是被删除的元素

    # 思考删除abc
    li = [1,2,3,'abc']
    li.pop()
    print(li)
    print(li.pop())
    '''
    输出结果
    [1,2,3] #删除后的列表
    abc # 被删除的元素
    ''' 
    # abc被删除
    

    方法二:根据索引删除元素

    li = [7,8,9,'abc']
    li.pop(2)
    print(li)
    '''
    输出结果
    [7,8,abc]
    '''
    

    一句话总结

    pop删除的3种方式:
    • 默认删除尾部li.pop()
    • 直接删除元素li.pop('abc')
    • 直接删除索引,删除的就是对应的元素li.pop(2)
    pop删除有返回值,返回值是被删除的元素,打印方式print(li.pop())

    本节习题:

    列表li = [1,2,3,'abc'],请用2种方法删除元素'abc'
    

    6.2 remove('被删除的元素') (通过元素删除)

    方法: 按照元素名删除

    li = [1,2,3,'abc',True]
    li.remove(1)
    print(li)
    [2,3,'abc',True]
    

    一句话总结

    remove('元素'), 从左向右删除,有同名的删除左侧的第一个

    6.3 del 列表名 (删除整个列表)

    方法一:del li 删除整个列表

    li = [1,2,3,"abc",True]
    del li
    print(li)
    '''
    输出结果
    NameError: name 'li' is not defined, li列表没有被定义
    '''
    

    方法二: 索引删除

    del li[2]
    

    方法三: 切片删除

    del li[0:3]
    

    方法四: 步长删除

    del li[::2]
    

    一句话总结:

    del li 整个列表

    del [2] 索引

    del [2:3] 切片

    del [2:3:2] 步长

    6.4 clear() 清空,得到一个空列表

    方法:

    li.clear() # 格式
    print(li)
    []
    

    7. 列表的改

    方法一: 通过索引的改

    li = ["水杯",2,3,"abc",]
    li[-1] = "奶瓶" # 将'abc'改成奶瓶
    print(li)
    '''
    ["水杯",2,3,"奶瓶",]
    '''
    
    li[1] = [1,2,3] # 将元素改成一个列表
    '''
    ["水杯",[1,2,3],3,"abc",]
    '''
    

    方法二: 通过切片的改

    • 可多可少
    • 可以指定空
    li = ["水杯",2,3,"abc",]
    li[0:3] = [1,2,3],[1234]
    '''
    [[1, 2, 3], [1234], 'abc']
    '''
    # 将0-3改成[1,2,3],[1234]
    li[0:4] = [1,2,3],[1234]
    '''
    [[1,2,3],[1234]]
    '''
    

    方法三: 通过步长的改 取几个就放几个 不能多不能少

    li = ["水杯",2,3,"abc",]
    li[0:3:2] = [1,2,3],[1234]
    print(li)
    '''
    [[1, 2, 3], 2, [1234], 'abc']
    '''
    

    8. 列表的查

    方法: 通过索引查

    li = ['abc',5,'太白','老吉普','d']
    print(li[3])
    '''
    老吉普
    '''
    

    方法: 通过切片

    li = ['abc',5,'太白','老吉普','d']
    print(li[1:4])
    '''
    [5,'太白','老吉普']
    '''
    

    方法: 通过步长

    li = ['abc',5,'太白','老吉普','d']
    print[li[1:4:2]]
    '''
    [5,'老吉普']
    '''
    

    方法: 通过for循环

    li = ['abc',5,'太白','老吉普','d']
    for i in li:
      print(i)
    '''
    ['abc',5,'太白','老吉普','d']
    '''
    
    

    9. 列表的嵌套

    li = ["水杯","衣服","鞋子","书","电脑","屁",["手机","钥匙",["身份证","银行卡"]],]
    l2 = li[6]
    print(l2)
    '''
    ["手机","钥匙",["身份证","银行卡"]]
    '''
    l3 = l2[2]
    print(l3)
    '''
    ["身份证","银行卡"]
    '''
    l4 = l3[1]
    print(l4)
    '''
    银行卡
    '''
    可以写成如下:
    l5 = li[6][2][1] # 第一个列表的索引6内部列表索引2,再内部列表索引1
    print[l5]
    '''
    银行卡
    '''
    

    列表习题:

    li = [1,2,3,"123",True]
    1. 用学过的方法输出以下结果
    123 <class 'str'>
    True <class 'bool'>
    [2,3,"123"]
    [2, '123']
    2. 查看下s = "alex"的数据类型
    
    li = ["水杯",2,3,"abc",]
    3. 两种方法将abc删除
    
    li = [1,2,3,'alex',3,[1,2,3]]
    4. 在列表末尾添加一个'太白'
    5. 低效率方法在第一个位置插入一个'大象'
    6. 用两种方法在列表末尾位置添加一个'a','b','c'
    
    l3 = [1,2,3]
    l2 = ["a","b","c"]
    7. 将这两个列表合并成一个
    
    li = [1,2,3,"abc",True]
    8. 将这个列表中的'abc'删除
    9. 两种方法将这个列表中的True删除
    
    li = [1,2,3,'abc']
    10. 将第二个字符改成一个列表
    11. 用改的方法将列表里元素2和3删除
    
    li = [1,2,3,4,"abc",5]
    li[0:2] = "ABC"
    12. 上题结果
    
    li = ["水杯",2,3,"abc",]
    13. 将'水杯'和3分别改成[1,2,3],[1234]
    
    li = ["水杯",2,3,"abc",]
    14. 将列表变成这样[[1,2,3],[1234]]
    
    li = ["水杯","衣服","鞋子","书","电脑","屁",["手机","钥匙",["身份证","银行卡"]],]
    15. 将'银行卡'提取出来
    
  • 相关阅读:
    【洛谷5304】[GXOI/ZOI2019] 旅行者(二进制分组+最短路)
    【LOJ6485】LJJ 学二项式定理(单位根反演)
    【CF932E】Team Work(第二类斯特林数简单题)
    【CF960G】Bandit Blues(第一类斯特林数)
    【洛谷4689】[Ynoi2016] 这是我自己的发明(莫队)
    【洛谷5355】[Ynoi2017] 由乃的玉米田(莫队+bitset)
    【洛谷5268】[SNOI2017] 一个简单的询问(莫队)
    【洛谷4688】[Ynoi2016] 掉进兔子洞(莫队+bitset)
    【洛谷3653】小清新数学题(数论)
    【洛谷6626】[省选联考 2020 B 卷] 消息传递(点分治基础题)
  • 原文地址:https://www.cnblogs.com/zanao/p/10990198.html
Copyright © 2011-2022 走看看