• list列表


    list列表

    list:一个有序的集合

    创建列表

    语法格式: 列表名 = [元素1, 元素2, 元素3…….,元素n]

    注:列表中的元素⽤逗号隔开。

    注:列表⾥⾯的元素可以是不同类型的数据。

    列表元素访问

    1、取值:语法格式: 列表名[下标]

    • 注:数组取值时,下标不能越界 •

    2、替换元素:语法格式: 列表名[下标] = 新值

    list5 = [1, 2, 3, 4]
    # 1取值:格式 列表名称[下标] 下标从0开始
    # 下标不可越界 最后一个元素下标为 列表长度-1  len(list)-1
    print(list5[2])
    # print(list5[6]) #IndexError: list index out of range
    
    # 2取值:从右向左取
    # 下标为-1 获取最后一个元素 同样不能越界
    print(list5[-1])
    
    # 3替换元素
    # 格式:列表名称[下标]=新值
    list5[1] = 200
    print(list5)

    列表的操作

    # 1 列表组合 +
    list6 = [1, 2, 3]
    list7 = [1, 2, 4, 5]
    print(list6 + list7)
    # 2列表的重复
    list8 = [1]
    print(list8 * 10)
    
    # 3判断某个元素是否存在列表
    # in not in
    print(5 in list7)
    
    # 4列表的截取
    # 语法:列表名称[[起始下标]:[结束下标]:[递增基数]]
    list9 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    # 4.1 从0开始截取,截取到数字6
    print(list9[:7])  # 从0开始截取,截取到数字6
    print(list9[3:])  # 从3截取到末尾
    print(list9[:])  # 截取所有
    print(list9[3:7])  # 范围
    print(list9[::-1])  # 倒序
    print(list9[::2])  # 隔一个截取一个

    列表的增删改查

    list.append(obj)   在列表后添加一个新元素,obj可以是任意类型数据

    list.extend(item)  在列表后添加新的元素,将item中的元素分开添加,item 必须是集合类型的元素

    list.insert(index,obj)  在列表指定位置添加元素    注:index 下标越界,则在最后位置添加元素

    list.pop([index])   删除指定下标的元素    若不指定下标,则默认删除最后一个元素

    list.clear()      清空列表中的元素

    list.remove(item)    删除item在列表中匹配到的第一个元素

    list.index(obj,[start,end])   obj是否在列表中存在,若存在则返回第一次匹配到的小标,如果不存在则返回错误valueError 。   [start,end]为范围查找

    obj  in   list     或   obj  not in list  列表中是否存在某元素

    len(list)   返回list的长度

    max(list)  返回最大值

    min(list)  返回最小值

    list.count(obj)   返回obj在list中出现的次数

    list.sort([reverse])     排序     reverse 默认  false   正序      true     反序

    list[ : :-1]   , list.reverse()     列表翻转(两种方式)

    # 四 数据的操作 ---增删改查
    # 1 增-- 增加数据
    list10 = [1, 2, 3, 4]
    print(list10)
    # 1.1 list.append(obj)在列表后面添加一个新的元素,obj可以是任意类型数据
    list10.append("asfd")
    print(list10)
    
    # 1.2 list.extend(iter)  在列表后面添加新的元素,将iter中的元素分开添加
    # 注;iter 必须 是集合类型的元素
    
    print('------------------------------')
    list11 = [1, 2, 3]
    print(list11)
    list11.extend("abcd")
    print(list11)
    list11.extend([11, 112])
    print(list11)
    
    # 1.3 list.insert(index,obj) 在指定的index位置上添加新的obj元素
    # 不会覆盖该位置原来的元素,原数据在index上的及之后的袁术下标依次向后顺移
    list12 = [1, 2, 3, 4]
    list12.insert(2, 44)
    print(list12)
    list12.insert(6, 2344)
    # 如果新增数据的下标越界,会在列表后添加新的元素
    print(list12)
    
    # 2 改 ---更改数据   更新数据
    # 语法格式:列表名称【index】=新值
    list5[1] = 200
    print(list5)
    
    # 3  删--- 删除数据
    # 3.1 list.pop([index]) 移除指定index位置的元素
    # 当不指定index的值时,默认删除最后一个值
    list13 = [1, 2, 3, 4]
    list13.pop()
    print(list13)
    list13.pop(2)
    print(list13)
    
    # 3.2 list.clear()  清空列表中的元素
    list14 = [1, 2, 3, 4, 5]
    list14.clear()
    print(list14)
    
    # 3.3 list.remove(item) 移除列表中匹配到第一个的item的元素
    list15 = [1, 2, 2, 3, 3, 4, 4, 3, 5, 56]
    list15.remove(1)
    print(list15)
    list15.remove(3)
    print(list15)
    
    # 查--- 查询元素
    # 1.列表中是否存在某个元素   in   not in
    # 2.列表中是否存在一个元素  index
    # list.index(obj,[start,end])   如果存在,返回第一次匹配到的下标,
    # 如果不存在,返回错误valueError
    list15 = [1, 2, 2, 3, 3, 4, 4, 3, 5, 56]
    print(list15.index(1))
    print(list15.index(2))
    print(list15.index(4, 6, 8))
    
    # 五、列表其他操作
    list15 = [121, 23, 34, 35, 54, 4]
    # 1.获取列表长度
    print(len(list15))
    # 2.返回列表中最大的元素
    print(max(list15))
    # 3.返回列表中最小的元素
    print(min(list15))
    # 4.列表翻转 改变原来的列表
    list1 = [1, 2, 3, 4]
    list1.reverse()
    print(list1)
    
    print(list1[::-1])  # 返回一个新的列表,不会改变原来的列表
    
    # 5 list1.count(obj)  返回元素obj在列表中的个数
    list1 = [12, 2, 33, 4, 4, 6, 5, 4, 44]
    print(list1.count(4))
    
    # 6.list.sort() 列表排序,默认正序
    # reverse 默认false  正序; 如果为true ,倒序
    list1 = [12, 2, 33, 4, 4, 6, 5, 4, 44]
    list1.sort(reverse=True)
    print(list1)
    
    # 7 拷贝
    # 浅拷贝:表面上增加了一个变量名称,但内存地址使用被拷贝的地址
    print('------------')
    list100 = [1, 2, 2, 12]
    listCopy = list100
    print(list100)
    print(listCopy)
    print(id(list100))
    print(id(listCopy))
    list100[0] = 100
    print(list100)
    print(listCopy)
    # 深拷贝  返回一个新的列表,内存地址与原来的列表不一样
    list200 = [1, 2, 2, 12, 444]
    listNew = list200.copy()
    print(id(list200))
    print(id(listCopy))
    
    # 拷贝模块
    import copy
    
    a = [1, 1, 33, [1, 2, 5]]
    b = copy.copy(a)
    c = copy.deepcopy(a)  # 真正的深拷贝
    print(id(a))
    print(id(b))
    print(id(c))
    print('**********************')
    print(id(a[3]))
    print(id(b[3]))
    print(id(c[3]))

     

  • 相关阅读:
    Windows FFMPEG开发环境配置
    双网卡单IP实现网卡冗余与负载均衡
    Thinking in Java 4th(Java编程思想第四版)文档、源码、习题答案(偶尔回顾)
    IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
    运行java飞行记录器JFR(java flight recorder)
    Java黑科技之源:JVMTI完全解读
    jvisualvm安装visualgc插件
    系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
    Jenkins 改成中文语言显示
    windows上Jenkins安装及其配置
  • 原文地址:https://www.cnblogs.com/dyd520/p/11243382.html
Copyright © 2020-2023  润新知