Python学习笔记(2)

xiaoxiao2022-06-16  30

Python中没有 switch case语句,只有if elif else 字符串、数字、元组是不可变的,改变其值会创建新的对象(这也是为什么大量字符串的拼接会导致效率降低的原因)字符串模版(直觉是这个功能做WEB的时候很有用,可以轻易的实现根据模版生成静态页面的功能): from string import Template s = Template("There are ${test}") print s.substitute(test="python")  ==>输出 There are python  substitute中参数如果没有对应声明字符串模版中的 Template 对象还有另外一个方法save_substitute(),该方法在没有声明key的情况下不会报错,直接输出 浅拷贝与深拷贝。 在拷贝一个列表时,有两种拷贝方式。浅拷贝,就是新创建了一个类型跟原类型一样,其内容是原来对象的引用,也就是说这个拷贝本身是新的,但是它的内容不是。而深拷贝则是建了一个与原对象独立的,但值一模一样的新对象。如何实现浅拷贝? 通常有三种方式,(1)完全的切片操作[:](2)利用工厂函数,比如list(),dict()等。(3)使用copy模块的copy函数。 a 前拷贝的示例: person = ["name",['male',19]] girl = person[:]    # 将人这个列表浅拷贝到girl boy = person[:]  # 将人这个列表浅拷贝到boy gilr[0] = "lily"   #修改名字 gril[1][0] = "female" boy[0] = “john” boy[1][0]="male" boy[1][1]=22   例认为打印出girl 和boy结果是什么? boy ====>  ["johu",['male',22]] girl ====>   ["lily",['male',22]] 为什么名字相互之间没有影响,而性别和年龄之间有影响呢?这是因为该列表中的第一个元素是一个字符串,是一个不可变的对象,一旦对其修改,就会独立生成一个新的对象。因此当拷贝的时候,字符串被显示的拷贝了,而列表只是拷贝了一个引用。 那么,如何实现深拷贝? 在copy模块,有一个deepcopy()方法,可以轻松实现深拷贝。

 

Copyright playgoogle.com© 2008

继续阅读《Python学习笔记(2)》的全文内容...

相关文章:

Python学习笔记(1)  (2009-8-28 16:56:30)

转载请注明原文地址: https://www.6miu.com/read-4940957.html

最新回复(0)