码迷,mamicode.com
首页 > 编程语言 > 详细

python笔记7:优雅的python

时间:2017-11-11 00:30:33      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:val   方法   iter   ==   key   nbsp   变量   python   txt   

7. 如何让python代码更 Pythonic :

1、变量交换: 

a, b = b, a

2、带有索引位置的集合遍历:

colors = [red, green, blue, yellow]
for i, color in enumerate(colors):
print i, --->, color

3、字符串连接:

names = [raymond, rachel, matthew, roger,betty, melissa, judith, charlie]
print , .join(names)

注:使用 + 操作时,每次都会在内存中生成一个新的字符串对象,而 join 方法整个过程只产生一个字符串对象。
4、打开/关闭文件:

with open(data.txt) as f:
data = f.read()


注:使用 with 语句,系统会在执行完文件操作后自动关闭文件对象。
5、合理使用列表

from collections import deque
names = deque([raymond, rachel, matthew, roger,betty, melissa, judith, charlie])
names.popleft()#删除最左边元素
names.appendleft(mark)#在最左边添加新元素

注:列表list 是一种查询效率高于更新操作的数据结构,删除和插入新元素时效率很低,队列deque 是一个双向队列的数据结构,删除元素和插入元素会很快
6、序列解包:

p = vttalk, female, 30, python@qq.com
name, gender, age, email = p

7、遍历字典的 key 和 value

for k, v in d.iteritems(): 注:iteritems 返回迭代器对象,在python3中只有 items 方法,等值于iteritems
print k, --->, v

8、链式比较操作: if 18 < age < 60:

猜一猜:>>> False == False == True (答案为:False)

9、if/else 三目运算:

text =  if gender == male else 

10、真值判断:

if attr: 等价于 if attr == True:
if values:(或 not values) 等价于 if len(values) != 0:(或 =0) # 判断列表是否为空

11、for/else语句
for else 是 Python 中特有的语法格式,else 中的代码在 for 循环遍历完所有元素之后执行
12、获取字典元素

d = {name: foo}
d.get("name", "unknow") #如果d有key=name,则获得其value,否则key=unknow

13、预设字典默认值
(场景:通过 key 分组的时候,不得不每次检查 key 是否已经存在于字典中。)

groups = {}
for (key, value) in data: #方式一,常用
groups.setdefault(key, []).append(value) 

14、字典推导式

numbers = [1, 2, 3]
my_dict = {number: number * 2 for number in numbers if number > 1}
print(my_dict) # {2: 4, 3: 6}

15、。。。

python笔记7:优雅的python

标签:val   方法   iter   ==   key   nbsp   变量   python   txt   

原文地址:http://www.cnblogs.com/W-Yentl/p/7816779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!