a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

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

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色成人在线 | 国产毛片久久久 | 91精品国产乱码久久久久久久久 | 精品欧美一区二区在线观看 | 99精品热播| 黑人巨大精品欧美一区二区一视频 | 久久久久久久久久久久国产精品 | www.日韩| 亚洲综合成人网 | www.久久| 国产在线一| 日韩精品在线网站 | 亚洲狠狠爱| 久久道| 天堂在线中文字幕 | 亚洲黄页 | 国产h片在线观看 | 久久久免费观看视频 | 国产视频精品久久 | 国产精品久久久一区二区 | 女男羞羞视频网站免费 | 欧美在线播放一区 | 国产精品高清在线 | 视频一区在线观看 | 粉色午夜视频 | 成人黄色av | 日韩亚洲精品在线观看 | 亚洲在线免费观看 | 可以在线观看的黄色 | 青青草在线视频免费观看 | 中文字幕久久精品 | 天堂在线免费视频 | 亚洲成色www久久网站瘦与人 | av一区二区三区在线观看 | 91 中文字幕 | 精品久久国产 | 国产精品永久 | 国产亚洲精品综合一区91555 | 一级黄色片网址 | 午夜久久久 | 手机看片福利 |