博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pythonic operations
阅读量:4597 次
发布时间:2019-06-09

本文共 1739 字,大约阅读时间需要 5 分钟。

变量交换>>> a, b = b, a循环遍历区间元素>>>for i in range(10):...    print (i)返回的是生成器对象,生成器比列表更加节省内存带索引位置的循环遍历>>>colors = ['red', 'green', 'blue', 'yellow']>>>for i, color in enumerate(colors):...    print (i, 'mapping', color)字符串连接>>>colors = ['red', 'green', 'blue', 'yellow']>>>print( ', ', join( colors ) )join 是一种更加高效的字符串连接方式,使用 + 操作时,每执行一次+操作就会导致在内存中生成一个新的字符串对象,遍历几次有几个字符串生成,造成无谓的内存浪费。而用 join 方法整个过程只会产生一个字符串对象。打开/关闭文件 >>>with open('data.txt') as f: ...   data = f.read()列表推导式 result = []for i in range( 10 ):    s = i * 2    result.append( s )应该写成:[ i * 2 for i in range( 10 ) ]1装饰器装饰器可以把与业务逻辑无关的代码抽离出来,让代码保持干净清爽,而且装饰器还能被多个地方重复利用。比如一个爬虫网页的函数,如果该 URL 曾经被爬过就直接从缓存中获取,否则爬下来之后加入到缓存,防止后续重复爬取。def web_lookup(url, saved={}):    if url in saved:        return saved[url]    page = urllib.urlopen(url).read()    saved[url] = page    return pagepythonicimport urllib.requestdef cache(func):    saved = {}    def wrapper(url):        if url in saved:            return saved[url]        else:            page = func(url)            saved[url] = page            return page    return wrapper@cachedef web_lookup(url):    return urllib.urlopen(url).read()列表的操作列表对象(list)是一个查询效率高于更新操作的数据结构,比如删除一个元素和插入一个元素时执行效率就非常低,因为还要对剩下的元素进行移动names = ['raymond', 'rachel', 'matthew', 'roger',         'betty', 'melissa', 'judith', 'charlie']names.pop(0)names.insert(0, 'mark')pythonicfrom collections import dequenames = deque(['raymond', 'rachel', 'matthew', 'roger',               'betty', 'melissa', 'judith', 'charlie'])names.popleft()names.appendleft('mark')deque 是一个双向队列的数据结构,删除元素和插入元素会很快序列解包p = 'vttalk', 'female', 30, 'python@qq.com'name = p[0]gender = p[1]age = p[2]email = p[3]pythonicname, gender, age, email = p

 

转载于:https://www.cnblogs.com/suanec/p/9004191.html

你可能感兴趣的文章
HexColor
查看>>
Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
查看>>
你会用swift创建复杂的加载动画吗(1)
查看>>
javabean转换为map对象
查看>>
CSS从入门到精通2.md
查看>>
【NOIP 2013】积木大赛
查看>>
HttpWebRequest调用WebService后台需要Session信息问题的解决办法
查看>>
SQL里的子查询
查看>>
Hdu5517 Triple
查看>>
vue 调用微信支付方法
查看>>
ABP创建应用服务
查看>>
混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
查看>>
Swift - 绘制背景线条
查看>>
POJ 2318
查看>>
HDU 1561 树形DP背包问题
查看>>
hdu1056
查看>>
避免js拼接页面的小技巧
查看>>
面试题(Spring)
查看>>
VS恢复默认设置
查看>>
BZOJ.3591.最长上升子序列(状压DP)
查看>>