• python3


    list的拷贝

    • 指向同一个内存地址操作同一个对象
    >>> list1
    [789, 555, 123, 123]
    >>> list2 = list1
    >>> list2
    [789, 555, 123, 123]
    >>> list1.pop()
    123
    >>> list1
    [789, 555, 123]
    >>> list1.pop()
    123
    >>> list1
    [789, 555]
    >>> list2
    [789, 555]
    
    • 真正的copy,通过slice切片的方式进行copy
    >>> list2 = list1[:]
    >>> list2
    [789, 555]
    >>> list1
    [789, 555]
    >>> list1.pop()
    555
    >>> list1
    [789]
    >>> list2
    [789, 555]
    
    • 指针指向同一个内存地址
    >>> list1
    [789, 555, 123, 123]
    >>> list2 = list1
    >>> list2
    [789, 555, 123, 123]
    >>> list1.pop()
    123
    >>> list1
    [789, 555, 123]
    >>> list1.pop()
    123
    >>> list1
    [789, 555]
    >>> list2
    [789, 555]
    

    sort

    >>> list1
    [123, 555, 789, 123]
    >>> list1.sort()
    >>> list1
    [123, 123, 555, 789]
    >>> list1.sort(reverse = True)
    >>> list1
    [789, 555, 123, 123]
    >>> 
    

    reverse逆转前后元素顺序倒过来

    >>> list1
    [123, 555, ['hello', 'world'], 789, 123]
    # 删除元素
    >>> list1.remove(list1[2])
    >>> list1
    [123, 555, 789, 123]
    >>> list1.reverse()
    >>> list1
    [123, 789, 555, 123]
    
    • 二层数组内部元素顺序不变
    >>> list1
    [123, 789, 555, 123]
    >>> list1.insert(1, [123, 456])
    >>> list1
    [123, [123, 456], 789, 555, 123]
    >>> list1.reverse()
    >>> list1
    [123, 555, 789, [123, 456], 123]
    >>> 
    

    index

    • 某个元素在list中第一次出现的位置
    >>> list1
    [123, 555, ['hello', 'world'], 789, 123]
    >>> list1.index(123)
    0
    
    • 指定某个区间出现的位置
    >>> list1
    [123, 555, ['hello', 'world'], 789, 123]
    >>> list1.index(789, 2, 4)
    3
    

    count

    • 某个元素在list中出现的频率次数
    [123, 555, ['hello', 'world'], 789, 123]
    >>> list1.count(123)
    2
    

    in

    • 情况1 只能是单层包含判断
    >>> list1
    [12, 34, 12, 34, 12, 34]
    >>> 12 in list1
    True
    >>> 122 in list1
    False
    
    • 情况2 两层包含
    >>> list1 = [123,555,["hello","world"],789]
    >>> "hello" in list1
    False
    >>> "hello" in list1[2]
    True
    >>> 123 in list1
    True
    
    • 访问内部数组内元素
    >>> list1[2][1]
    'world'
    >>> 
    

    列表与运算符

    # 初始化list1
    >>> list1
    [12, 34]
    # 此时并没有改变list1内容
    >>> list1 * 3
    [12, 34, 12, 34, 12, 34]
    >>> list1
    [12, 34]
    # 已经改变list1内容
    >>> list1 *= 3
    >>> list1
    [12, 34, 12, 34, 12, 34]
    

    列表拼接 +只能用来两个列表拼接

    • 类似extend方法
    >>> ls1
    [3, 4, 5]
    >>> ls2
    [3, 4]
    >>> ls3 = ls1 + ls2
    >>> ls3
    [3, 4, 5, 3, 4]
    >>> 
    
    • 不能用+向其中添加元素
    • 建议使用append, extend 添加新元素
    >>> ls3 + 'hel'
    Traceback (most recent call last):
      File "<pyshell#62>", line 1, in <module>
        ls3 + 'hel'
    TypeError: can only concatenate list (not "str") to list
    >>> 
    

    两个列表比较

    • 比较从第一个元素开始,如果第一个大,那么那个列表就大
    >>> ls1 = [1,2]
    >>> ls2 = [3,4]
    >>> ls1 > ls2
    False
    
    • 元素数量不同前面几位相等
    >>> ls1
    [3, 4, 5]
    >>> ls2
    [3, 4]
    >>> ls1 > ls2
    True
    >>> 
    

    切片slice

    • 从开始位置到结束位置,不包含结束位置,并不会删除列表中的元素
    • 从指定位置到指定位置
    >>> member
    ['adfa', 'world', 'zhangsan', 'sichuan', 'file']
    >>> member[1:3]
    ['world', 'zhangsan']
    >>> member
    ['adfa', 'world', 'zhangsan', 'sichuan', 'file']
    >>> 
    
    • 从开始到指定位置
    >>> member
    ['adfa', 'world', 'zhangsan', 'sichuan', 'file']
    >>> member[:2]
    ['adfa', 'world']
    >>> 
    
    • 从指定位置到结束位置
    >>> member
    ['adfa', 'world', 'zhangsan', 'sichuan', 'file']
    >>> member[2:]
    ['zhangsan', 'sichuan', 'file']
    >>> 
    

    添加到末尾

    添加一个元素 append

    >>> member = []
    >>> member.append('adfa')
    >>> member
    ['adfa']
    

    添加多个元素 extend

    • 添加多个元素内部参数是一个数组,是其他参数报错.
    >>> member.extend(['hello','world'])
    >>> member
    ['adfa', 'hello', 'world']
    

    以上都是拼接到列表的末尾

    添加到开始位置

    insert

    • 第一个参数要插入的位置,第二个要插入的内容对象,可以是一个单个元素,也可以是一个列表对象
    >>> member.insert(1,['ni','shi'])
    >>> member
    ['adfa', ['ni', 'shi'], 'hello', 'world']
    

    删除元素

    remove

    >>> member
    ['adfa', ['ni', 'shi'], 'hello', 'world']
    >>> member.remove('ni')
    Traceback (most recent call last):
      File "<pyshell#9>", line 1, in <module>
        member.remove('ni')
    ValueError: list.remove(x): x not in list
    >>> member.remove(['ni','shi'])
    >>> member
    ['adfa', 'hello', 'world']
    >>> 
    

    del语句

    >>> member
    ['adfa', 'hello', 'world']
    >>> del member[1]
    >>> member
    ['adfa', 'world']
    >>> 
    
    • del+列表名(member)把整个列表从内存中删除

    pop()

    • 剔除列表最后一个元素并返回,列表是栈结构
    >>> member
    ['adfa', 'world']
    >>> member.pop()
    'world'
    >>> member
    ['adfa']
    >>> 
    
    • 剔除指定位置元素
    >>> member
    ['adfa', 'helloo', 'world', 'zhangsan']
    >>> member.pop(1)
    'helloo'
    >>> member
    ['adfa', 'world', 'zhangsan']
    >>> 
    

    共享笔记地址: http://note.youdao.com/noteshare?id=02dd58374c53d853c10a74afb5ecc8be

  • 相关阅读:
    安卓清理缓存怎么做(未完)
    【转】来讨论下 Android 面试该问什么?
    解决app安装成功后,直接点击“打开”再按home返回,再次打开app会重新启动的问题
    Android切换横竖屏不销毁前台Activity,也不影响后台Activity
    Android布局:宽度适应的横向跟随,防止挤掉重要视图
    Android上的Badge,快速实现给应用添加角标
    博客上传图片存储解决
    ViewComponent组件在框架中使用
    Git日常使用命令
    js中的preventDefault与stopPropagation详解
  • 原文地址:https://www.cnblogs.com/adampei-bobo/p/6640581.html
Copyright © 2020-2023  润新知