python extend append
2015-07-26 22:17
323 查看
very good:
Python程序员的常见错误
[1,2].extend([1,2,3])
[1,2,1,2,3]
[1,2].append([1,2,3])
[1,2,[1,2,3]]
append向后面添加元素,参数可以是任何东西,将作为元素添加到列表尾部。
extend使用一个序列扩展另一个list,参数是序列。序列中的元素将逐项添加到列表的尾部。
目的是要得到append的结果,但是事实上这样做会将None赋值给mylist,而不是改变后的列表。更加特别的一个例子是想通过用排序后的键值来遍历一个字典里的各个元素,请看下面的例子:
差一点儿就成功了——keys方法会创建一个keys的列表,然后用sort方法来将这个列表排序——但是因为sort方法会返回None,这个循环会失败,因为它实际上是要遍历None(这可不是一个序列)。要改正这段代码,将方法的调用分离出来,放在不同的语句中,如下:
Python程序员的常见错误
[1,2].extend([1,2,3])
[1,2,1,2,3]
[1,2].append([1,2,3])
[1,2,[1,2,3]]
append向后面添加元素,参数可以是任何东西,将作为元素添加到列表尾部。
extend使用一个序列扩展另一个list,参数是序列。序列中的元素将逐项添加到列表的尾部。
1.不要试图从那些会改变对象的函数得到结果
诸如像方法list.append()和list.sort()一类的直接改变操作会改变一个对象,但不会将它们改变的对象返回出来(它们会返回None);正确的做法是直接调用它们而不要将结果赋值。经常会看见初学者会写诸如此类的代码:mylist = mylist.append(X) #错误方式 print mylist #none mylist.append(x) #正确方式
目的是要得到append的结果,但是事实上这样做会将None赋值给mylist,而不是改变后的列表。更加特别的一个例子是想通过用排序后的键值来遍历一个字典里的各个元素,请看下面的例子:
D = {...} for k in D.keys().sort(): print D[k]
差一点儿就成功了——keys方法会创建一个keys的列表,然后用sort方法来将这个列表排序——但是因为sort方法会返回None,这个循环会失败,因为它实际上是要遍历None(这可不是一个序列)。要改正这段代码,将方法的调用分离出来,放在不同的语句中,如下:
Ks = D.keys() Ks.sort() for k in Ks: print D[k]
相关文章推荐
- 常用的android弹出对话框
- iOS开发——Xcode6 创建Empty Application
- Android Using Volley
- HDU 5234 Happy birthday 最多蛋糕
- Android 开源框架Universal-Image-Loader完全解析(三)---源代码解读
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
- android之我自己实现的下拉刷新
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android之——自动挂断电话的实现
- 扯谈spring mvc之WebApplicationContext的继承关系
- cocos2dx 子弹飞作为一个例子来解释解酒效果类CCMotionStreak
- Cocos2d:使用 CCCamera 做滚动效果 (Four Ways of Scrolling with Cocos2D)
- 基于Ubuntu14.04的RK3288_PopMetal Android开发环境搭建过程小记
- Swift学习笔记(十一)——Swift中三元运算符的低级错误:Consecutive statements on a line must be separated by';'
- 五毛的cocos2d-x学习笔记03-控件
- cocos2dx_lua_v3.7 open console
- Android support v4中的Fragment和app包中的Fragment
- 快速Android开发系列通信篇之EventBus
- Android 四种启动模式
- cocos2d-x 3.4 中文乱码解决之道