• Python3 数据类型-列表


    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

    索引如下图:

    列表命名(list):
    组成:使用[]括起来,并且把值赋给变量
    例:a = ["sunwk","zhubj","shas","tangs"]
    列表中的每个元素可以是任何数据类型,如:整型、字符创、列表、元祖、字典等
    例:a = [1,[1,2],("ll","ff"),"sunwk"]

    例:list1 = list(range(5)) 

    容器类型
    任意对象的有序集合,通过索引访问其中改的元素,可变对象。
    异构,任意嵌套。

    支持在原处修改:
    修改制定的索引元素,修改制定的分片,删除语句,内置方法

    一 列表方法

    二 列表访问(查)

    实例(Python3.0+):

    list1 = ["sunwk","zhubj","shas","tangs"]
    # 定义列表list1
    
    print(list1[:])  
    # 从左到右:打印输出列表所有内容 ['sunwk', 'zhubj', 'shas', 'tangs']
    
    print(list1[1:]) 
    # 从左到右:索引1打印到最后 ['zhubj', 'shas', 'tangs']
    
    print(list1[1:-1:1])  
    # 从左到右:索引1到-1,一个一个取  最后的1是步长 ['zhubj', 'shas']
    
    print(list1[1::2])  
    # 从左到右:索引1到最后隔一个去取 ['zhubj', 'tangs']
    
    print(list1[-2::-2])   
    # 从右到左隔一个去取 ['shas', 'sunwk']
    
    print(list1[2::-2])    
    # 从右到左隔一个去取 ['shas', 'sunwk']
    
    print(list1[-2:])   
    # 从左到右:索引-2到最后取全部,步长决定取值方向
    
    print(list1[-2:-4])  
    # 取值失败,-2到-4方向是从右往左,默认步长是1,方向从左到右,两边方向矛盾,导致取值失败  

    三 列表更新(增加)

    方法:list.append()  list.insert()

    实例1(Python3.0+):list.append() 

    list1 =  ["sunwk","zhubj","shas","tangs"]
    # 定义列表
    
    list1.append("lvcm")
    print(list1)
    # 只能把值插入到列表最后,且只能插入一个 

    实例2(Python3.0+):list.insert()

    list1 =  ["sunwk","zhubj","shas","tangs"]
    # 定义列表list1
    
    list1.insert(1,"maoj")
    print(list1)
    # ['sunwk', 'maoj', 'zhubj', 'shas', 'tangs']
    # 将数据从插入到任意一个位置,1位索引
    
    list1.insert(-2,"lihc")
    print(list1)
    # ['sunwk', 'maoj', 'zhubj', 'lihc', 'shas', 'tangs']
    
    
    """
    总结:
    添加使用insert时,索引为正数时,添加到索引位置左边,索引为负数时,添加到索引左边
    可以把修改列表当做增加使用,在添加多个元素时使用
    """ 

    四 列表更新(修改)

    实例(Python3.0+): 

    list1 = ['sunwk', 'zhubj', 'shas', 'tangs']
    # 定义列表list1
    
    list1[1]= "wangyw" 
    # 先取出值,list1[1]取出索引为1的值,然后把“wangyw”赋给list1[1]
    print(list1)  
    # ['sunwk', 'wangyw', 'shas', 'tangs']
    
    print(list1[1:3])  
    # ['wangyw', 'shas']
    list1[1:3] = ["a","b"]
    print(list1)  
    # ['sunwk', 'a', 'b', 'tangs']
    
    """
    修改也可以当做增加使用
    """

    五 列表删除

    方法:list.remove()  list.pop()  del

    总结: 

    1. 只有del可以切片删除,pop 和 remove 不能 
    2. 只有pop有返回值,del和remove没有返回值
    3. 列表删除,只有del可以切片删除,pop 和 remove 不能

    实例1(Python3.0+):list.remove()

    list1 = ['sunwk', 'zhubj', 'shas', 'tangs']
    # 定义列表list1
    
    list1.remove("sunwk")
    print(list1)  
    # ['zhubj', 'shas', 'tangs']
    
    list1.remove(list1[0])
    print(list1) 
    # ['shas', 'tangs']
    

    实例2(Python3.0+):list.pop()

    list1 = ['sunwk', 'zhubj', 'shas', 'tangs']
    # 定义list1
    
    list1.pop(1)
    print(list1) 
    # ['sunwk', 'shas', 'tangs']
    
    list2 = list1.pop(1)
    print(list2)  
    # shas  pop可以把删除的值赋给变量
    
    list3 = f.pop()  
    # 默认删除最后(索引为-1的值)的值,并把删除的值赋给变量list3
    

    实例3(Python3.0+):del

    list1 = ["0","1","2","3","4","5"]
    
    del list1[0]
    print(list1)
    # ['1', '2', '3', '4', '5']
    
    
    """
    del 可以切片删除
    del list1  
    # 删除整个对象 print(list1) NameError: name 'h' is not defined """   

    六 列表拼接

    实例1(Python3.0+):

    list1 = [1,2,3,4] 
    list2 = ['abc','lvcm','wangyw']
    print(list1 + list2)
    # 输出结果:[1, 2, 3, 4, 'abc', 'lvcm', 'wangyw']
    # list1 + list2 合并两个列表变成一个新列表,原有列表不变。
    

    实例2(Python3.0+):

    list1 = [1,2,3,4] 
    print(list1 * 2)
    # 输出结果:[1, 2, 3, 4, 1, 2, 3, 4]
    # list1 * N:把列表重复N次,返回一个新列表,原有列表不变。

    七 列表复制

    实例1(Python3.0):

    list1 = [1,2,3,4]
    list2 = list1
    # 当改变list1中的某个元素的值后,list2会不会改变呢
    
    list1.append(5)
    print(list1,list2)
    # 输出结果:[1, 2, 3, 4, 5] [1, 2, 3, 4, 5] 从结果上看,当list1改变时,list2会随之改变。
    # 分析:当list2 = list1 时,其实是把list2的引用对象指向了list1,也就是说id(list2) = id(list1),当改变list1中某个元素,id(list1)并未改变,因为列表是支持原处修改的可变类型。
    

    实例2(Python3.0):浅复制

    list1 = [1,2,3,4]
    list2 = list1[:]
    
    list1.append(4)
    print(list1,list2)
    # [1, 2, 3, 4, 5] [1, 2, 3, 4],结果表明,list1改变时,list2不变。
    # 分析:此赋值方法,只是把list1中的元素取出来赋值给了list2,id(list1) != id(list2)
    

    实例3(Python3.0):导入模块复制(copy模块)

    import copy
    # 导入copy模块
    
    list1 = [1,2,3,4]
    list2 = copy.deepcopy(list1)
    
    print(id(list1),id(list2))
    # 12109448 12110280

    实例4(Python3.0):list.copy()

    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    # 定义列表list1
    
    list2 = list1.copy()
    list1.append('Souhu')
    print("list1 列表:", list1)
    # list1 列表: ['Google', 'Runoob', 'Taobao', 'Baidu', 'Souhu']
    print ("list2 列表: ", list2)
    print(id(list1),id(list2))
    # list2 列表:  ['Google', 'Runoob', 'Taobao', 'Baidu']
    # list1 改变时,list2不会随之改变

    八 其它方法

    list.count()

    计算列表中元素出现次数

    实例(Python3.0+):

    list1 = ["muyb","wangyw","duh","wangyw"]
    # 定义列表list1
    
    num = list1.count("wangyw")
    print(num)  
    # 2
    

    list.extend()

    把一个列表中的元素插入到另外一个列表中

    实例(Python3.0+):

    list1 = [1,2,3]
    list2 = [4,5,6]
    
    list1.extend(list2) 
    # 把列表list2中的元素插入到列表list1中
    print(list1)
    # [1, 2, 3, 4, 5, 6]
    print(list2)
    # [4, 5, 6]
    

    list.index()

    查看元素的索引值

    实例(Python3.0+):

    list1 = ["sunwk","zhubj","tangs","shas"]
    # 定义列表list1
    
    print(list1.index("zhubj"))
    # zhubj的索引为1
    
    p = list1.index("zhubj")
    # 把zhubj的索引赋值给p
    q = list1.index('shas')
    # 把shas的索引值赋给q
    print(list1[p:q])
    # 打印索引 1 到 3 的元素 ['zhubj', 'tangs']
    print(list1[p:])
    # 打印索引1 到 最有的所有元素 ['zhubj', 'tangs', 'shas']

    list.reverse()

    反向列表中元素

    实例(Python3.0+):

    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    # 定义列表list1
    
    list1.reverse()
    print ("列表反转后: ", list1)
    # 列表反转后:  ['Baidu', 'Taobao', 'Runoob', 'Google']
    

    list.clear() 

    清空列表

    实例(Python3.0+):

    list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
    # 定义列表list1
    
    list1.clear()
    print ("列表清空后 : ", list1)
    # 列表清空后 :  []  

    九 列表函数

    len()

    统计列表元素个数

    实例(Python3.0+):

    list1 = [1,2,3,4,5]
    # 定义列表list1
    
    print(len(list1))
    # 5
  • 相关阅读:
    【数据结构】并查集
    项目管理【12】 | 项目范围管理-收集需求
    项目管理【11】 | 项目范围管理-规划范围管理
    项目管理【10】 | 项目范围管理-范围管理概述
    Visual Studio代码远程调试方法
    项目管理【09】 | 项目整体管理-结束项目或阶段
    操作系统【2】Linux系统安装
    操作系统【1】Linux基础知识
    移动端开发案例【2】头部组件开发
    移动端开发案例【1】全局样式配置
  • 原文地址:https://www.cnblogs.com/lvcm/p/8779412.html
Copyright © 2020-2023  润新知