zoukankan      html  css  js  c++  java
  • deque

    一: deque

    创建双向队列

    import collections
    d = collections.deque()

    1. append ----往右添加一个元素
    d.append(1)

    2. appendleft---往左边添加一个元素
    d.appendleft(2)

    3. clear -----清空队列

    4. copy
    new_d = d.copy()
    备注:
    在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用
    直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变
    包含对象里面的自对象的拷贝,所以原始对象的改变不会造成深拷贝里任何子元素的改变-------------深拷贝

    拷贝:原则上就是把数据分离出来,复制其数据,并以后修改互不影响。
    一个非拷贝的例子:
    =赋值:数据完全共享(=赋值是在内存中指向同一个对象,如果是可变(mutable)类型,比如列表,修改其中一个,另一个必定改变
    如果是不可变类型(immutable),比如字符串,修改了其中一个,另一个并不会变)

    浅拷贝:数据半共享(复制其数据独立内存存放,但是只拷贝成功第一层)

    l1 = [1,2,3,[11,22,33]]
    l2 = l1.copy()
    print(l2) #[1,2,3,[11,22,33]]
    l2[3][2]='aaa'
    print(l1) #[1, 2, 3, [11, 22, 'aaa']]
    print(l2) #[1, 2, 3, [11, 22, 'aaa']]
    l1[0]= 0
    print(l1) #[0, 2, 3, [11, 22, 'aaa']]
    print(l2) #[1, 2, 3, [11, 22, 'aaa']]
    print(id(l1)==id(l2)) #Flase

    如上述代码,l2浅拷贝了l1 ,之后l2把其列表中的列表的元素给修改,从结果看出,l1也被修改了。但是仅仅修改l1列表中的第一层元素,却并没有影响l2。
    比较一下l2与l1的内存地址:False,说明,l2在内存中已经独立出一部分复制了l1的数据,但是只是浅拷贝,第二层的数据并没有拷贝成功,而是指向了l1中的第二层数据的内存地址,所以共享内存‘相当于‘’等号赋值’‘,所以就会有l2中第二层数据发生变化,l1中第二层数据也发生变化

    深拷贝:数据完全不共享(复制其数据完完全全放独立的一个内存,完全拷贝,数据不共享)
    深拷贝就是完完全全复制了一份,且数据不会互相影响,因为内存不共享。

    5. count(返回指定元素的出现次数)
    d.count("a")

    6. extend(从队列右边扩展一个列表的元素)
    d.extend([3,4,5])

    7. extendleft(从队列左边扩展一个列表的元素)

    8. index(查找某个元素的索引位置)

    9. insert(在指定位置插入元素)

    10. pop(获取最右边一个元素,并在队列中删除)

    11. popleft(获取最左边一个元素,并在队列中删除)
    12. remove(删除指定元素)
    13. reverse(队列反转)
    14. rotate(把右边元素放到左边)
    d.rotate(2) #指定次数,默认1次

    15. 限制deque的长度
    d=deque(maxlen=20)

    zfill (width) 返回长度为 width 的字符串,原字符串右对齐,前面填充0
    isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

  • 相关阅读:
    继承ViewGroup:重写onMeasure方法和onLayout方法
    Eclipse插件的四种安装方法
    android 多条短信息发出后的状态怎样判断
    关闭windows的自动更新
    有的放矢,用好软件开发的目标管理
    安卓打包之数字签名
    PHP+jQuery实现Ajax分页效果:jPaginate插件的应用
    使用SqlDataReader获取输出参数
    ServU服务器中文乱码问题的解决
    VPS虚拟主机与VM虚拟主机对比
  • 原文地址:https://www.cnblogs.com/wenshu/p/12252997.html
Copyright © 2011-2022 走看看