1. 变量交换
  2. >>> a, b = b, a
  3. 循环遍历区间元素
  4. >>>for i in range(10):
  5. ... print (i)
  6. 返回的是生成器对象,生成器比列表更加节省内存
  7.  
  8. 带索引位置的循环遍历
  9. >>>colors = ['red', 'green', 'blue', 'yellow']
  10.  
  11. >>>for i, color in enumerate(colors):
  12. ... print (i, 'mapping', color)
  13. 字符串连接
  14. >>>colors = ['red', 'green', 'blue', 'yellow']
  15. >>>print( ', ', join( colors ) )
  16. join 是一种更加高效的字符串连接方式,使用 + 操作时,每执行一次+操作就会导致在内存中生成一个新的字符串对象,遍历几次有几个字符串生成,造成无谓的内存浪费。而用 join 方法整个过程只会产生一个字符串对象。
  17.  
  18. 打开/关闭文件
  19. >>>with open('data.txt') as f:
  20. ... data = f.read()
  21. 列表推导式
  22. result = []
  23. for i in range( 10 ):
  24. s = i * 2
  25. result.append( s )
  26.  
  27. 应该写成:
  28.  
  29. [ i * 2 for i in range( 10 ) ]
  30. 1
  31. 装饰器
  32.  
  33. 装饰器可以把与业务逻辑无关的代码抽离出来,让代码保持干净清爽,而且装饰器还能被多个地方重复利用。比如一个爬虫网页的函数,如果该 URL 曾经被爬过就直接从缓存中获取,否则爬下来之后加入到缓存,防止后续重复爬取。
  34.  
  35. def web_lookup(url, saved={}):
  36. if url in saved:
  37. return saved[url]
  38. page = urllib.urlopen(url).read()
  39. saved[url] = page
  40. return page
  41.  
  42. pythonic
  43.  
  44. import urllib.request
  45.  
  46. def cache(func):
  47. saved = {}
  48.  
  49. def wrapper(url):
  50. if url in saved:
  51. return saved[url]
  52. else:
  53. page = func(url)
  54. saved[url] = page
  55. return page
  56. return wrapper
  57.  
  58. @cache
  59. def web_lookup(url):
  60. return urllib.urlopen(url).read()
  61. 列表的操作
  62. 列表对象(list)是一个查询效率高于更新操作的数据结构,比如删除一个元素和插入一个元素时执行效率就非常低,因为还要对剩下的元素进行移动
  63.  
  64. names = ['raymond', 'rachel', 'matthew', 'roger',
  65. 'betty', 'melissa', 'judith', 'charlie']
  66. names.pop(0)
  67. names.insert(0, 'mark')
  68. pythonic
  69.  
  70. from collections import deque
  71. names = deque(['raymond', 'rachel', 'matthew', 'roger',
  72. 'betty', 'melissa', 'judith', 'charlie'])
  73. names.popleft()
  74. names.appendleft('mark')
  75. deque 是一个双向队列的数据结构,删除元素和插入元素会很快
  76.  
  77. 序列解包
  78. p = 'vttalk', 'female', 30, 'python@qq.com'
  79.  
  80. name = p[0]
  81. gender = p[1]
  82. age = p[2]
  83. email = p[3]
  84. pythonic
  85.  
  86. name, gender, age, email = p

pythonic operations的更多相关文章

  1. backup, file manipulation operations (such as ALTER DATABASE ADD FILE) and encryption changes on a database must be serialized.

    昨天在检查YourSQLDba备份时,发现有台数据库做备份时出现了下面错误信息,如下所示: <Exec>   <ctx>yMaint.ShrinkLog</ctx> ...

  2. HDU 5938 Four Operations(四则运算)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  3. ios基础篇(二十九)—— 多线程(Thread、Cocoa operations和GCD)

    一.进程与线程 1.进程 进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内: 如果我们把CPU比作一个工厂,那么进程就好比工厂的车间,一个工厂有 ...

  4. 一些Python的惯用法和小技巧:Pythonic

    Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技 ...

  5. OpenCascade Modeling Algorithms Boolean Operations

    Modeling Algorithms Boolean Operations of Opencascade eryar@163.com 布尔操作(Boolean Operations)是通过两个形状( ...

  6. A.Kaw矩阵代数初步学习笔记 4. Unary Matrix Operations

    “矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...

  7. A.Kaw矩阵代数初步学习笔记 3. Binary Matrix Operations

    “矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...

  8. mouse scrollings and zooming operations in linux & windows are opposite

    mouse scrollings and zooming operations in linux & windows are opposite. windows中, 鼠标滚动的方向是: 查看页 ...

  9. MongoDB—— 写操作 Core MongoDB Operations (CRUD)

    MongoDB使用BSON文件存储在collection中,本文主要介绍MongoDB中的写操作和优化策略. 主要有三种写操作:        Create        Update        ...

随机推荐

  1. iOS:UIButton扩大按钮的响应区域

    一.介绍 在开发中有时会遇见设计图里按钮设计的特别小,这时会用到手动扩大UIButton的响应范围 二.方式 下面有两个解决办法: 第一种方法:创建一个类目:UIButton+EnlargeTouch ...

  2. Github超棒资源汇总

    Awesome List 中文资源大全 经典编程书籍大全 免费的编程中文书籍索引 awesome-awesomeness-zh_CN https://github.com/jnv/lists awes ...

  3. 一句话Javascript实现价格格式化

    //小数点后面如果超过3位则转换错误,如1.1234 正确的是1.1234但却错误的转换成了1.1,234 var test1 = '1234567890.123' var format = test ...

  4. ValueError: output parameter for reduction operation logical_and has too many dimensions ?

    https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.all.html#numpy.all 运行示例,却发生错误 import ...

  5. maven scope 范围讲解

    解决办法: <dependency>     <groupId>javax.servlet</groupId>     <artifactId>java ...

  6. 使用idea创建web项目

    一直使用的是eclipse,有一个项目开发用的是idea,我也尝试着熟悉一下idea,先来创建一个web项目吧 1.idea下载安装使用 官方下载地址:https://www.jetbrains.co ...

  7. 如何卸载EXCEL中的插件?

    1.问题:每一次启动,excel都会弹出一个提示框,是因为将treeplan给删除了.找不到. 2.解决办法: 1)在加载项界面,点击转到.就进入自己加载的工具界面 2)将相应项前面的勾取消--但某插 ...

  8. go微服务框架go-micro深度学习(五) stream 调用过程详解

        上一篇写了一下rpc调用过程的实现方式,简单来说就是服务端把实现了接口的结构体对象进行反射,抽取方法,签名,保存,客户端调用的时候go-micro封请求数据,服务端接收到请求时,找到需要调用调 ...

  9. PowerShe 消息提示框测试

    1. 使用powerShell 弹出一个简单的消息框,代码如下,创建test.ps1脚本文件. $ConfirmPreference = 'None' $ws = New-Object -ComObj ...

  10. OpenCV 对矩阵进行掩码操作

    Mask operations on matrices https://docs.opencv.org/master/d7/d37/tutorial_mat_mask_operations.html ...