国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

總結Python編程中三條常用的技巧

2019-11-25 17:30:13
字體:
來源:轉載
供稿:網友

在 python 代碼中可以看到一些常見的 trick,在這里做一個簡單的小結。
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 = Falsefor item in xrange(60, 80):  if item % 17 == 0:    flag = True    breakif 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    breakelse:  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 collectionsdyna_routes = collections.defaultdict(list)...dyna_routes[method].append(whole_rule)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合阳县| 昆明市| 英超| 建始县| 宜阳县| 洱源县| 株洲市| 峨边| 贺兰县| 土默特右旗| 泸水县| 浦城县| 芒康县| 海晏县| 北川| 沂水县| 宣城市| 汪清县| 武宁县| 通渭县| 康马县| 南京市| 磐安县| 东光县| 五寨县| 嘉祥县| 毕节市| 乐平市| 龙井市| 文水县| 灯塔市| 揭西县| 林州市| 平凉市| 长岭县| 福鼎市| 淮滨县| 松桃| 玛纳斯县| 青冈县| 兰考县|