总结Python编程中三条常用的技巧
2015-05-11 00:00
831 查看
在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结。
json 字符串格式化
在开发 web 应用的时候经常会用到 json 字符串,但是一段比较长的 json 字符串是可读性较差的,不容易看出来里面结构的。 这时候就可以用 python 来把 json 字符串漂亮的打印出来。
else 的妙用
在某些场景下我们需要判断我们是否是从一个 for 循环中 break 跳出来的,并且只针对 break 跳出的情况做相应的处理。这时候我们通常的做法是使用一个 flag 变量来标识是否是从 for 循环中跳出的。 如下面的这个例子,查看在 60 到 80 之间是否存在 17 的倍数。
其实这时候可以使用 else 在不引入新变量的情况下达到同样的效果
setdefault 方法
dictionary 是 python 一个很强大的内置数据结构,但是使用起来还是有不方便的地方,比如在多层嵌套的时候我们通常会这么写
其实还有一种更简单的写法可以达到同样的效果
或者可以使用 collections.defaultdict 模块
json 字符串格式化
在开发 web 应用的时候经常会用到 json 字符串,但是一段比较长的 json 字符串是可读性较差的,不容易看出来里面结构的。 这时候就可以用 python 来把 json 字符串漂亮的打印出来。
root@Exp-1:/tmp# cat json.txt {"menu": {"breakfast": {"English Muffin": {"price": 7.5}, "Bread Basket": {"price": 20, "desc": "Assortment of fresh baked fruit breads and muffins"}, "Fruit Breads": {"price": 8}}, "drink": {"Hot Tea": {"price": 5}, "Juice": {"price": 10, "type": ["apple", "watermelon", "orange"]}}}} root@Exp-1:/tmp# root@Exp-1:/tmp# cat json.txt | python -m json.tool { "menu": { "breakfast": { "Bread Basket": { "desc": "Assortment of fresh baked fruit breads and muffins", "price": 20 }, "English Muffin": { "price": 7.5 }, "Fruit Breads": { "price": 8 } }, "drink": { "Hot Tea": { "price": 5 }, "Juice": { "price": 10, "type": [ "apple", "watermelon", "orange" ] } } } } root@Exp-1:/tmp#
else 的妙用
在某些场景下我们需要判断我们是否是从一个 for 循环中 break 跳出来的,并且只针对 break 跳出的情况做相应的处理。这时候我们通常的做法是使用一个 flag 变量来标识是否是从 for 循环中跳出的。 如下面的这个例子,查看在 60 到 80 之间是否存在 17 的倍数。
flag = False for item in xrange(60, 80): if item % 17 == 0: flag = True break if flag: print "Exists at least one number can be divided by 17"
其实这时候可以使用 else 在不引入新变量的情况下达到同样的效果
for item in xrange(60, 80): if item % 17 == 0: flag = True break else: print "exist"
setdefault 方法
dictionary 是 python 一个很强大的内置数据结构,但是使用起来还是有不方便的地方,比如在多层嵌套的时候我们通常会这么写
dyna_routes = {} method = 'GET' whole_rule = None # 一些其他的逻辑处理 ... if method in dyna_routes: dyna_routes[method].append(whole_rule) else: dyna_routes[method] = [whole_rule]
其实还有一种更简单的写法可以达到同样的效果
self.dyna_routes.setdefault(method, []).append(whole_rule)
或者可以使用 collections.defaultdict 模块
import collections dyna_routes = collections.defaultdict(list) ... dyna_routes[method].append(whole_rule)
相关文章推荐
- 总结Python编程中三条常用的技巧
- 51 个常用asp.net技巧总结(摘要)
- Python图像处理常用操作技巧总结
- Yii常用技巧总结
- ceph常用运维技巧总结
- Mysql常用技巧总结
- 使用ubuntu PC开发ARM单板常用技巧总结
- SharePoint 2010 常用技巧及方法总结
- SharePoint 2010常用技巧及方法总结
- iOS开发之Xcode常用调试(Debug)技巧总结
- 前端开发中一些常用技巧总结
- vc常用技巧总结
- Windows Phone 7常用的开发技巧&学习总结
- 前端开发中一些常用技巧总结
- 常用js交互技巧总结
- Linux or unix 常用技巧总结
- C和C++语言编程里面常用函数或者编程技巧总结(不断更新)
- 计算机操作常用技巧(总结)
- Oracle数据库SqlLoad常用技巧总结word版
- vc常用技巧总结二