0
点赞
收藏
分享

微信扫一扫

Python列表的相关操作

颜路在路上 2022-04-07 阅读 70
python

列表相关操作

  • 可获取,可修改,有序

  • 列表的拼接 (同元组) +

    lst1 = [1,2,3]
    lst2 = [2,3,4]
    lst = lst1 + lst2
    print(lst)                           # [1, 2, 3, 2, 3, 4]
    
  • 列表的重复 (同元组) *

    lst = lst1 * 3
    print(lst)                           # [1, 2, 3, 1, 2, 3, 1, 2, 3]
    
    tup = ("a","b")
    res = tup * 3
    print(res)
    
  • 列表的切片 (同元组)

    语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值]

    lst = ["张治中","曹国晋","宋浩","欧阳郁郁","范李评","李文豪","申艳英","刘霞"]	
    (1)[开始索引:]                从开始索引截取到列表的最后
    print(lst[3:])
    
    (2)[:结束索引]                从开头截取到结束索引之前(结束索引-1)
    print(lst[:3])
    
    (3)[开始索引:结束索引]         从开始索引截取到结束索引之前(结束索引-1)
    print(lst[5:7])	
    print(lst[-3:-1])
    
    (4)[开始索引:结束索引:间隔值]  从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
    print(lst[::2])                   #              从头->尾 间隔值为正
    print(lst[::-1])                  # -1 -2 -3 ... 从尾->头 间隔值为负
    
    (5)[:]或[::]  截取所有列表
    print(lst[:] , lst[::])
    
  • 列表的获取 (同元组)

            0        1        2
    lst = ["张治中","曹国晋","宋浩"]
            -3       -2      -1
    print(lst[-1])
    
  • 列表的修改 ( 可切片 )

    lst = ["张治中","曹国晋","宋浩","欧阳郁郁","范李评","李文豪","申艳英","刘霞"]	
      lst[1] = "曹国舅"                           # 修改一个数据
      print(lst)
    
    • 利用切片,一次修改多个数据

      iterable: 容器,range对象,迭代器
      lst[1:4] = ("张果老","吕洞宾","铁拐李","何仙姑")
      lst[1:4] =  1234                         # error 必须为Iterable类型才可以赋值
      lst[1:4] = "1234"
      print(lst)
      
    • 利用切片,切几个元素就修改几个元素

      lst = ["张治中","曹国晋","宋浩","欧阳郁郁","范李评","李文豪","申艳英","刘霞"]	
      print(lst[::3] )                        #0 3 6 9 12 .... 张治中 欧阳郁郁 申艳英
      
      lst[::3] = ["王源","王俊凯","易烊千玺"]
      lst[::3] = ["王源","王俊凯"]              # error
      
      print(lst)
      
    • 列表的删除 ( 可切片 )

      lst = ["张治中","曹国晋","宋浩","欧阳郁郁","范李评","李文豪","申艳英","刘霞"]	
      
      删除一个元素
        del lst[0]
        print(lst)
        
      删除多个元素
       del lst[0:3]                         # 0 1 2 
       print(lst)
      
      注意点1
      res = lst[0:3]                       # 删除是指向0:3这些元素的变量res本身,不是列表
      del res
      print(lst)
      
      注意点2
      tup = (1,2,3,[4,5])                  # 改变的是列表,不是元组
      tup[-1][-1] = 6
      print(tup)
      
    • 去掉列表所有重复元素

      常规写法一
      lst = ["a","b","a",3]
      res = set(lst)
      print( list(res) )                     # ["a","b","3"]
      
      按照次序来算
      append 从后面插入,追加
      lst = []
      lst.append(1)
      lst.append(2)
      lst.append(3)
      print(lst)                             # [1,2,3]
      
      进阶写法二  [保证次序]
      lst = ["a","b","a",3]
      lst_new = []
      for i in lst:                         # 不会你就for i in 先把数据跑起来
      	if i not in lst_new:              # 如果不在新列表里,就插入
      		lst_new.append(i)             # 插入
      print(lst_new)
      
举报

相关推荐

0 条评论