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

首頁 > 編程 > Python > 正文

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

2020-01-04 19:16:28
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了總結Python編程中三條常用的技巧,包括JSON格式的轉換、else語句的活用和setdefault方法的使用,需要的朋友可以參考下

在 python 代碼中可以看到一些常見的 trick,在這里做一個簡單的小結。

json 字符串格式化

在開發 web 應用的時候經常會用到 json 字符串,但是一段比較長的 json 字符串是可讀性較差的,不容易看出來里面結構的。 這時候就可以用 python 來把 json 字符串漂亮的打印出來。

 

 
  1. root@Exp-1:/tmp# cat json.txt  
  2. {"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"]}}}} 
  3. root@Exp-1:/tmp 
  4. root@Exp-1:/tmp# cat json.txt | python -m json.tool 
  5. "menu": { 
  6. "breakfast": { 
  7. "Bread Basket": { 
  8. "desc""Assortment of fresh baked fruit breads and muffins"
  9. "price"20 
  10. }, 
  11. "English Muffin": { 
  12. "price"7.5 
  13. }, 
  14. "Fruit Breads": { 
  15. "price"8 
  16. }, 
  17. "drink": { 
  18. "Hot Tea": { 
  19. "price"5 
  20. }, 
  21. "Juice": { 
  22. "price"10
  23. "type": [ 
  24. "apple"
  25. "watermelon"
  26. "orange" 
  27. root@Exp-1:/tmp# 

else 的妙用

在某些場景下我們需要判斷我們是否是從一個 for 循環中 break 跳出來的,并且只針對 break 跳出的情況做相應的處理。這時候我們通常的做法是使用一個 flag 變量來標識是否是從 for 循環中跳出的。 如下面的這個例子,查看在 60 到 80 之間是否存在 17 的倍數。

 

 
  1. flag = False 
  2. for item in xrange(6080): 
  3. if item % 17 == 0
  4. flag = True 
  5. break 
  6.  
  7. if flag: 
  8. print "Exists at least one number can be divided by 17" 

其實這時候可以使用 else 在不引入新變量的情況下達到同樣的效果

 

 
  1. for item in xrange(6080): 
  2. if item % 17 == 0
  3. flag = True 
  4. break 
  5. else
  6. print "exist" 

setdefault 方法

dictionary 是 python 一個很強大的內置數據結構,但是使用起來還是有不方便的地方,比如在多層嵌套的時候我們通常會這么寫

 

 
  1. dyna_routes = {} 
  2. method = 'GET' 
  3. whole_rule = None 
  4. # 一些其他的邏輯處理 
  5. ... 
  6. if method in dyna_routes: 
  7. dyna_routes[method].append(whole_rule) 
  8. else
  9. dyna_routes[method] = [whole_rule] 

其實還有一種更簡單的寫法可以達到同樣的效果

 

 
  1. self.dyna_routes.setdefault(method, []).append(whole_rule) 

或者可以使用 collections.defaultdict 模塊

 

 
  1. import collections 
  2. dyna_routes = collections.defaultdict(list) 
  3. ... 
  4. dyna_routes[method].append(whole_rule) 
 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵璧县| 铁力市| 庄浪县| 广元市| 宣恩县| 息烽县| 南皮县| 彭山县| 台北县| 祁门县| 南平市| 雅安市| 壤塘县| 五家渠市| 济阳县| 大石桥市| 奈曼旗| 翁牛特旗| 礼泉县| 亳州市| 海淀区| 荔浦县| 广昌县| 贵港市| 巫溪县| 崇信县| 西乌珠穆沁旗| 临沂市| 新丰县| 新绛县| 印江| 靖宇县| 江山市| 龙胜| 济南市| 酒泉市| 新晃| 琼结县| 大同县| 晋城| 新晃|