麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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) 
 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲成人激情av | 精品久久久一二三区播放播放播放视频 | 夜夜看 | 中文字幕在线网 | av免费在线播放网址 | 九一传媒在线观看 | 亚洲成人激情在线 | 久久久久久久久久久久久久国产 | 中国fx性欧美xxxx | av影院在线播放 | 91精品国产九九九久久久亚洲 | 91在线视频观看 | 久久国产成人午夜av浪潮 | 国产成人精品区 | 欧美性受xxxx白人性爽 | 国产69精品99久久久久久宅男 | 天天色综合2 | 天天碰天天操 | 欧美精品免费一区二区三区 | 亚洲精品免费播放 | 久久久国产精品网站 | 亚洲成人入口 | 久久精品免费网站 | 日韩一级片免费 | 亚洲aⅴ免费在线观看 | 91热久久免费频精品黑人99 | 黄色网址电影 | 日本在线视频免费观看 | 免费网站看v片在线a | 成年免费视频黄网站在线观看 | 欧美一区高清 | www成人在线观看 | 在线观看免费av网 | 日本不卡一区二区在线观看 | 亚洲成人网一区 | 国产精品成人一区二区三区吃奶 | 美女黄污视频 | 久草在线综合网 | 久久亚洲一区二区三区成人国产 | 国产一级一片免费播放 | 最新欧美精品一区二区三区 |