python列表总结,无演示操作

(一)列表查询

  • index(value[start,stop])
    O(n)的时间复杂度
  • count(value)
    返回列表中匹配value的次数
    O(n)的时间复杂度
  • 时间复杂度
    index和count方法都是On
    随着列表数据规模的增大,而效率下降
  • 返回列表元素的个数
    len(list)

(二)列表增加,插入元素

  • append(object)
    列表尾部追加元素,返回None
    返回None就以为这没有新的列表产生,就地修改
    时间复杂度On
  • insert(index,object)
    在指定的索引INDEX处插入元素object
    返回None就意味着没有新的列表产生,就地修改
    时间复杂度是O(n)
    索引能超上下界
    超越上界,尾部追加
    超越下界,头部追加
  • extend
    将可迭代对象的元素追加进来,返回None
    就地修改
  • (+) ->list
    连接操作,将两个列表连接起来
    产生新的列表,原列表不变
    本质上调用的是——add_()方法
  • (*)->
    重复操作,将本列表元素重复n次,返回新的列表

(三)列表删除元素

  • remove(value) ->None
    从左至右查找第一个匹配value的值,移除该元素,返回none
    就地修改

  • pop([index]) ->item
    不指定索引index,就从列表尾部弹出一个元素
    指定索引index,就 从索引处弹出一个元素,索引超界抛出IndexError错误

  • clear() ->None
    清除列表所有元素,剩下一个空列表
    不推荐使用,可以创建新的列表

  • reverse() ->None
    将列表元素反转,返回None
    就地修改

  • sort(key=None,reverse=False) -> None
    对列表元素进行排序,就地修改,默认升序
    reverse为True,反转,降序
    key一个函数,指定key如何排序

  • in
    [3,4] in [1,2,[3,4]]
    for x in [1,2,3,4]

  • is
    A is B 相同的内存地址

  • id
    查看内存序列

(四)列表复制

  • import copy导入copy函数
  • shadow copy
    影子拷贝,也叫浅拷贝,遇到引用类型,只是复制了一个引用而已
    list = copy.deepcopy(list)
  • 深拷贝,拷贝后独立的内存序列
特别注意:深拷贝与浅拷贝的区别

浅拷贝

list = []                      #创建一个列表list
list.extend(range(5))          #对列表list赋值
a = [1,2,3,4,list]             #创建一个列表a,将列表list添加到列表a
b = a.copy()                   #对a进行浅拷贝

这时a和b的列表为:
       a = [1, 2, 3, 4, [0, 1, 2, 3, 4]]
       b = [1, 2, 3, 4, [0, 1, 2, 3, 4]]

修改list列表

list.append(5)

修改后的a和b列表为:
       a = [1, 2, 3, 4, [0, 1, 2, 3, 4, 5]]
       b = [1, 2, 3, 4, [0, 1, 2, 3, 4, 5]]

深拷贝

import copy
list = []                      #创建一个列表list
list.extend(range(5))          #对列表list赋值
a = [1,2,3,4,list]             #创建一个列表a,将列表list添加到列表a
b = copy.deepcopy(a)                   #对a进行深拷贝

这时a和b的列表为:
       a = [1, 2, 3, 4, [0, 1, 2, 3, 4]]
       b = [1, 2, 3, 4, [0, 1, 2, 3, 4]]

修改list列表

list.append(5)

修改后的a和b列表为:
       a = [1, 2, 3, 4, [0, 1, 2, 3, 4, ]]
       b = [1, 2, 3, 4, [0, 1, 2, 3, 4, 5]]

浅拷贝只是复制的a的内存序列,而深拷贝是在内存重新开辟出一些空间放置复制的内容

(五)随机数

  • random模块
  • random(a,b)返回[a,b]之间的整数
  • choice(sep)从非空序列元素中水机挑选一个元素,比如random.choice(range(10))从0到9中随机挑选一个整数。
  • randrange([start,]stop[,step]从指定范围内,按指定基数递增的集合中获取一个随机 数,基数缺省值为1
  • random.shuffle(list) ->None
    就地打乱列表顺序
  • sample(population,k)从样本空间或总体(序列或者集合类型)中随机抽取K个不同的元素(不是同一个元素),返回一个新的列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值