Python核心编程 第六章
来源:互联网 发布:优化国土空间开发格局 编辑:程序博客网 时间:2024/05/22 06:37
1.Python三引号是为了解决特殊字符的,它允许一个字符串跨多行,字符串中可以包含换行符,制表符以及其他特殊字符。
2.使用extend()方法比连接操作的一个优点是它实际上是把新列表添加到了原有的列表里面,而不是像连接操作那样新建一个列表。
使用连接操作符不能实现向列表中添加新元素的操作。是因为我们在连接操作符的左右两边使用了不同类型的值。
3.无论list()还是tuple()都可能做完全的转换,也就是说,你传给tuple()的一个列表对象不可能变成一个元组。虽然前后两个对象(原来的和新的对象)有着相同的数据集合(所以相等==),但是变量指向的却不是同一个对象。
4.那些可以改变对象值的可变对象的方法是没有返回值的。
5.
stack = [];def pushit(): stack.append(raw_input('Enter new string: ').strip());def popit(): if len(stack) == 0: print 'Cannot pop from an empty stack'; else: print 'Removed[',stack.pop(),']'; def viewstack(): print stack; CMDs = {'u':pushit, 'o':popit, 'v':viewstack};def showmenu(): pr = """ P(U)sh P(O)p (V)iew (Q)uit Enter choice:"""; while True: while True: try: choice = raw_input(pr).strip()[0].lower(); except (EOFError, KeyboardInterrupt, IndexError): choice = 'q'; print '\nYour picked: [%s]' % choice; if choice not in 'uovq': print 'Invalid option, try again'; else: break; if choice == 'q': break; CMDs[choice](); if __name__ == '__main__': showmenu();
queue = [];def enQ(): queue.append(raw_input('Enter new string: ').strip()); def deQ(): if len(queue) == 0: print 'Cannot pop from an empty queue!'; else: print 'Removed [', queue.pop(), ']';def viewQ(): print queue;CMDs = {'e':enQ, 'd':deQ, 'v':viewQ};def showmenu(): pr = """ (E)nqueue (D)equeue (V)iew (Q)uit Enter choice: """; while True: while True: try: choice = raw_input(pr).strip()[0].lower(); except (EOFError, KeyboardInterrupt, IndexError): choice = 'q'; print '\nYou picked: [%s]' % choice; if choice not in 'devq': print 'Invalid option, try again'; else: break; if choice == 'q': break; CMDs[choice](); if __name__ == '__main__': showmenu();
6.
虽然元组对象本身是 不可改变的,但这并不意味着元组包含的可变对象也不可变。
>>> t=(['xyz',123],23,-103.4)>>> t(['xyz', 123], 23, -103.4)>>> t[0][1]123>>> t[0][1]=['abc','def']>>> t(['xyz', ['abc', 'def']], 23, -103.4)
7.所有函数返回的多对象(不包括有符号封装的)都是元组类型。有符号封装的多对象集合其实是返回的一个单一的容器对象。
8.
>>> person=['name',['savings', 100.00]]>>> hubby=person[:]>>> wifey=list(person)>>> [id(x) for x in person, hubby, wifey][23585096, 23586136, 23594368]>>> hubby[0]='Joe'>>> wifey[0]='Jane'>>> hubby,wifey(['Joe', ['savings', 100.0]], ['Jane', ['savings', 100.0]])>>> hubby[1][1]=50.0>>> hubby,wifey(['Joe', ['savings', 50.0]], ['Jane', ['savings', 50.0]])>>>
在这两个列表的对象中,第一个对象是不可变的(是字符串类型),而第二个是可变的(一个列表)。当进行浅拷贝时,字符串被显示的拷贝,并创建了一个字符串对象,而列表元素只是把它的引用复制了一下,并不是它的成员。
>>> [id(x) for x in hubby][23590264, 23586056]>>> [id(x) for x in wifey][23575200, 23586056]
非容器类型(比如数字,字符串和其他“原子”类型对象)没有拷贝一说,浅拷贝是用完全切片操作来完成的。
如果元组变量只包含原子类型对象,对它的深拷贝将不会进行。
0 0
- python核心编程第六章
- Python核心编程 第六章
- Python核心编程 练习 第六章
- python核心编程,第六章,答案
- Python核心编程第六章笔记
- python核心编程--第六章 6.22 练习
- Python核心编程 第六章练习题
- Python核心编程 练习 第六章
- 《Python核心编程》第六章练习解析
- Python 核心编程第六章6.3
- Python 核心编程第六章6.1 6.2
- Python 核心编程第六章练习
- python核心编程-第六章习题答案
- Python核心编程 第六章练习
- 《Python 核心编程》--第六章读书笔记
- python核心编程第六章练习
- 《Python核心编程》第六章编程题代码
- python核心编程 第六章练习6-2
- java属性初始化初始化
- tomcat server.xml配置详解
- 它山之石
- Uva 116 Unidirectional TSP
- EditText文本框之外任何地方隐藏键盘的解决办法
- Python核心编程 第六章
- 【机房重构】一步一步往上爬——数据库设计
- POJ2406 Power Strings next数组应用
- 在网页站点使用Ajax访问CAS保护网址时,报not allowed access错误的解决方法
- linux umount命令参数及用法详解---linux卸载文件系统命令
- CSS命名规范
- Windows 7图形架构解析
- 无刷新计算本息
- 流媒体学习笔记1:一个视频文件常用属性浅析之我见(bpp/vbr/resolution/fps)