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'}


原文地址:https://www.cnblogs.com/liqiantu/p/5771358.html