Python学习笔记(2)

  1. Python中没有 switch case语句,只有if elif else
  2. 字符串、数字、元组是不可变的,改变其值会创建新的对象(这也是为什么大量字符串的拼接会导致效率降低的原因)
  3. 字符串模版(直觉是这个功能做WEB的时候很有用,可以轻易的实现根据模版生成静态页面的功能):
    from string import Template
    s = Template("There are ${test}")
    print s.substitute(test="python")  ==>输出 There are python 
    substitute中参数如果没有对应声明字符串模版中的
    Template 对象还有另外一个方法save_substitute(),该方法在没有声明key的情况下不会报错,直接输出
  4. 浅拷贝与深拷贝
    在拷贝一个列表时,有两种拷贝方式。浅拷贝,就是新创建了一个类型跟原类型一样,其内容是原来对象的引用,也就是说这个拷贝本身是新的,但是它的内容不是。而深拷贝则是建了一个与原对象独立的,但值一模一样的新对象。
    如何实现浅拷贝?
    通常有三种方式,(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)

101.html

art01.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值