zoukankan      html  css  js  c++  java
  • 列表-list

    del:将指定索引位置的元素删除

    a = [1,2,3,4,5,6]
    del a[2]

    +:将多个列表连接起来

    a = [1,2,3,4,5]
    b = [5,6,7,8,9]
    d = ['a', 'b', 'c']
    c = a + b + d
    print(c)
    #[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 'a', 'b', 'c']

    *:将n个列表接在一起

    a = [1,2,3,4,5]
    b = a *3
    print(b)
    #[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

    in:判断某元素是否在列表里边

    a = [1,2,3,4,5,6]
    b = 8
    c = b in a
    #c 的值是一个布尔值
    print(c)
    #False

    list:将其他格式的数据转换成list

    s = "I love wangxiaojing"
    print(list(s))
    #['I', ' ', 'l', 'o', 'v', 'e', ' ', 'w', 'a', 'n', 'g', 'x', 'i', 'a', 'o', 'j', 'i', 'n', 'g']

    append:在列表末尾插入一个值

    a = [ i for i in range(1,5)]
    a.append(100)

    insert:在列表指定位置插入一个值

    # insert(index, data) 插入位置是index前面
    a.insert(3, 666)

    remove:在列表中删除指定的值的元素

    # 如果被删除的值在list中不存在,则程序报错,所以可以在使用remove的时候添加一个try防止程序奔溃
    a.remove(666)

    clear:清空该列表

    #不会改变列表的地址
    a.clear()
    # 如果不需要列表地址保持不变,则清空列表可以使用以下方式
    # a = list()
    # a = []

    reverse:翻转列表里的所有内容

    a.reverse()
    #[1, 2, 3, 4, 5]
    #[5, 4, 3, 2, 1]

    extend:把一个列表直接拼接到另外一个上

    a = [ 1,2,3,4,5]
    b = [6,7,8,9,10]
    a.extend(b)
    print(a)
    #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    count:查找列表中指定值或元素的个数

    a_cnt = a.count(8)
    print(a_cnt)

    copy: 拷贝(浅拷贝)

    # 深拷贝跟浅拷贝的区别
    # 出现下列问题的原因是,copy函数是个浅拷贝函数,即只拷贝一层内容
    # 深拷贝需要使用特定工具
    a = [1,2,3, [10, 20, 30]]
    b = a.copy()#使用copy会使a和b的地址不同,但是内部其他结构的地址会相同
    print(id(a))
    print(id(b))
    print(id(a[3]))
    print(id(b[3]))
    a[3][2] = 666
    print(a)
    print(b)
    #140249408365768
    #140249409236040
    #140249409236232
    #140249409236232
    #[1, 2, 3, [10, 20, 666]]
    #[1, 2, 3, [10, 20, 666]]

    列表内涵:通过简单方法创作列表

    a = ['a', 'b', 'c']
    # 下面代码的含义是,对于所有a中的元素,逐个放入新列表b中
    b = [i for i in a]
    print(b)
    #['a', 'b', 'c']
    a = [1,2,3,4,5]
    b = [i*10 for i in a]
    print(b)
    #[10, 20, 30, 40, 50]
    #生成从1到34的一个列表
    a = [x for x in range(1,35)]
    # 把a中所有偶数生成一个新的列表 b
    b = [m for m in a if m % 2 == 0]
    print(b)
    #[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34]
    a = [i for i in range(1,4)] 
    b = [i for i in range(100,400) if i % 100 == 0]
    # 列表生成是可以嵌套,此时等于两个for循环嵌套
    c = [m+n for m in a for n in b]
    print(c)
    # 上面代码跟下面代码等价
    for m in a:
        for n in b:
            print(m+n, end="  ")
    # 嵌套的列表生城市也可以用条件表达式
    c = [  m+n for m in a for n in b if m+n < 250]

    列表的分片操作:

    l = [3,2,1,4,6,3,2]
    # 注意截取的范围,左闭右开
    print(l[1:4])
    # 下标值可以为空
    print(l[:])
    print(l[:4])
    print(l[2:])
    #[2, 1, 4]
    #[3, 2, 1, 4, 6, 3, 2]
    #[3, 2, 1, 4]
    #[1, 4, 6, 3, 2]
    l = [3,2,1,4,6,3,2]
    #下标可以为负数
    print(l[-2:-4])
    print(l[-4:-2])
    #如果分片左边值比右边大,则步长参数需要使用负数
    print(l[-2:-4:-1])
    #[]
    #[4, 6]
    #[3, 6]
    l = [3,2,1,4,6,3,2]
    # 分片可以控制增长幅度,默认增长幅度为1
    print(l[1:6:1])
    # 打印从下标1开始的数字,每次隔一个
    print(l[1:6:2])
    # 下标可以超出范围,超出后不在考虑多余下标内容
    print(l[2:10])
    #[2, 1, 4, 6, 3]
    #[2, 4, 3]
    #[1, 4, 6, 3, 2]
  • 相关阅读:
    1.4.2 The Clocks
    剑指Offer:面试题14——调整数组顺序使奇数位于偶数前面(java实现)
    链表:删除链表中重复的结点(java实现)
    剑指Offer:面试题13——在O(1)时间删除链表结点
    剑指Offer:面试题12——打印1到最大的n位数(java实现)
    剑指Offer:面试题11——数值的整数次方(java实现)
    剑指Offer:面试题8——旋转数组的最小值(java实现)
    剑指Offer:面试题7——用两个栈实现队列(java实现)
    剑指Offer:面试题6——重建二叉树(java实现)
    剑指Offer:面试题5——从尾到头打印链表(java实现)
  • 原文地址:https://www.cnblogs.com/wjw2018/p/9750649.html
Copyright © 2011-2022 走看看