zoukankan      html  css  js  c++  java
  • python小记(1)

    “*”

    字符串中的“乘法”,这个乘法,就是重复那个字符串的含义。在某些时候很好用的。比如我要打印一个华丽的分割线:>>> str1*3

    'abcdabcdabcd'
    >>> print "-"*20    #不用输入很多个`-`
    --------------------

    列表是可以改变的,字符串是不可变
     

    python通过配置文件共享全局变量

    http://blog.csdn.net/suzyu12345/article/details/51534015

    通过global 与 数组 实现全局变量 

    python 对象可变性

    str tuple 不可变

    dic list 可变

    python 深浅拷贝

    深层的原因,这跟Python存储的数据类型特点有关,Python只存储基本类型的数据,比如int、str,对于不是基础类型的,比如刚才字典的值是列表,Python不会在被复制的那个对象中重新存储,而是用引用的方式,指向原来的值。

    如果读者没有明白这句话的意思,我就只能说点通俗的了(我本来不想说通俗的,装着自己有学问)。Python在所执行的复制动作中,如果是基本类型的对象(专指数字和字符串),就在内存中重新建个窝;如果不是基本类型的,就不新建窝了,而是用标签引用原来的窝。这也好理解,如果比较简单,随便建立新窝简单;但是,如果对象太复杂了,就别费劲了,还是引用一下原来的省事。(这么讲有点忽悠了)。

    所以,在编程语言中,把实现上面那种拷贝的方式称之为“浅拷贝”。顾名思义,没有解决深层次问题。言外之意,还有能够解决深层次问题的方法喽。

    的确是,在Python中,有一个“深拷贝”(deep copy)。不过,要用下一import来导入一个模块。这个东西后面会讲述,前面也遇到过了。

     

     浅拷贝

    >>> cd = ad.copy()
    >>> cd
    {'lang': 'python', 'name': 'qiwsir'}
    >>> id(cd)
    3072239788L

    深拷贝
    >>> import copy
    >>> z = copy.deepcopy(x)
    >>> z
    {'lang': ['python', 'java'], 'name': 'qiwsir'}


  • 相关阅读:
    顶级游戏设计大师谈如何成为一名游戏设计师
    【转】内存溢出处理方法
    我的C++技巧总结
    实践C++ 代码维护的思考
    编写安全代码:数组和指针的本质以及何时不能互换
    如何检测网络端口是否被占用
    IT人员迅速提升自我效率的十大方法
    MySQL老旧版本下载地址
    struts2: config-browser-plugin 与 convention-plugin 学习
    struts2: config-browser-plugin 与 convention-plugin 学习
  • 原文地址:https://www.cnblogs.com/liqiantu/p/5771358.html
Copyright © 2011-2022 走看看