列表List的常见操作

列表List的常见操作

特点

  • 以中括号[]表示
  • 其中元素可增加,删除
  • 可迭代

创建

  • 创建一个空列表

    val1 = list()
    val2 = []
    print(type(val1))
    print(type(val2))
    print(val1)
    print(val2)
    
    # 结果
    <class 'list'>
    <class 'list'>
    []
    []
    
    
  • 创建一个含有多个元素的列表

    val = [1, 'a', (1,), {10:'abc'}]
    print(type(val))
    print(val)
    
    # 结果
    <class 'list'>
    [1, 'a', (1,), {10: 'abc'}]
    
    list(可迭代对象)
    
    val1 = list({1, 3, 2})
    val2 = list((4, 7, 'a'))
    val3 = list({1:'a', 'b':3}) #会将键值放入list中
    print(type(val1))
    print(type(val2))
    print(type(val3))
    print(val1)
    print(val2)
    print(val3)
    
    # 结果
    <class 'list'>
    <class 'list'>
    <class 'list'>
    [1, 2, 3]
    [4, 7, 'a']
    [1, 'b']
    

索引取值

list[index] 返回index下对应的值,若index越界,抛异常

val = [1, 0, '2', 'a']
print(val[2])

# 结果
'2'

切片操作

  • 从左往右是正向(从0开始逐渐增大,直到最右边元素的下标len-1)

  • 从右往左是负向(从-1开始逐渐减小,直到最左边元素的下标-len)

    list[start:end:direction]
    # 从start→end,是一种方向;direction也表示方向(正数表示从左往右,负向表示从右往左)
    # 只有当二者的方向一致时,才会进行切片;否则返回空元组
    
    val = [1, 2, 3, 4]
    res1 = val[1:3:-1]
    res2 = val[-1:-3:1]
    print(res1)
    print(res2)
    
    # 结果
    []
    []
    
    
    val1 = [1, 2, 3, 4]
    print(val1[1:3:1])
    # 结果
    [2, 3]
    
    val2 = [1, 2, 3, 4]
    print(val2(-1:-3:-1))
    # 结果
    [4, 3]
    
  • 正向切片,当end<len-1时,总是左闭右开[);但当指明end>=len或end留空不写时,则最右侧数若在逐增步长可达到,则取最右侧值,否则不取。

    val = [1, 2, 3, 4]
    print(val[1:3:1])
    print(val[1:4:1])
    print(val[1::1])
    print(val[1::2])
    print(val[1::5])
    
    # 结果
    [2, 3]
    [2, 3, 4]
    [2, 3, 4]
    [2, 4]
    [2]
    
  • 负向向切片,当end>-len时,总是右闭左开(];但当指明end<=-len或end留空不写时,则最左侧数若在逐减步长可达到,则取最左侧值,否则不取。

    val = [1, 2, 3, 4]
    print(val[-1:-3:-1])
    print(val[-1:-4:-1])
    print(val[-1::-1])
    print(val[-1::-2])
    print(val[-1::-5])
    
    # 结果
    [4, 3]
    [4, 3, 2]
    [4, 3, 2, 1]
    [4, 2]
    [4]
    

内置函数

# 增 删 查 排序
list.insert(inx, elmnt) 在inx位置上插入元素elmnt,被插入位置后的元素依次后移一位,list原地修改                           返回值为None,若inx位置越界,不抛异常
list.append(elmnt) 将元素elmnt添加到list的尾部,list原地修改;返回值为None
list.extend(可迭代对象) 将可迭代对象中的元素,从list的尾部依次加入,原地修改list,返回值为None

list.pop(inx) 将在inx为上的元素从list中弹出,并返回,原地修改list;若inx越界,抛异常
list.remove(elment)list中的元素elmnt删除,返回值为None;若elment不在list中,抛异常

list.index(elmnt, start, end) 返回索引从start到end第一出现elmnt的索引下标。若不存在,抛异常。
list.count(elmnt) 返回list中elmnt出现的次数

list.sort(key, reverse) 以关键字key进行升序排列,reverse表示是否逆序排列,原地修改,返回值为None

list.copy()list进行复制并返回
list.reverse()list中的元素位置反向,list原地修改,返回值为None
list.clear()list清空为空列表,原地修改list,返回值为None

其他

list1 + list2 返回一个将两个元组中元素放在一起的新元组,但两元组中元素的相对位置不变
                [1, 2] + [3, 4][1, 2, 3, 4]
  
tuple * n 返回一个将tuple中所有元素重复n遍的新元组,但是绝对位置不变
          [1, 2] * 3[1, 2, 1, 2, 1, 2]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值