精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python的22個編程技巧,Pick一下?

開發 后端
本文作者總結了Python的22個編程技巧,其中包括原地交換兩個數字、鏈狀比較操作符、使用三元操作符來進行條件賦值等等,希望對大家有所幫助。

[[242397]]

1. 原地交換兩個數字

Python 提供了一個直觀的在一行代碼中賦值與交換(變量值)的方法,請參見下面的示例: 

  1. x,y= 10,20print(x,y)x,y= y,xprint(x,y)#1 (10, 20)#2 (20, 10) 

賦值的右側形成了一個新的元組,左側立即解析(unpack)那個(未被引用的)元組到變量 和 。

一旦賦值完成,新的元組變成了未被引用狀態并且被標記為可被垃圾回收,最終也完成了變量的交換。

2. 鏈狀比較操作符

比較操作符的聚合是另一個有時很方便的技巧: 

  1. n= 10result= 1< n< 20print(result)# Trueresult= 1> n<= 9print(result)# False 

3. 使用三元操作符來進行條件賦值

三元操作符是 if-else 語句也就是條件操作符的一個快捷方式:

[表達式為真的返回值] if [表達式] else [表達式為假的返回值]

這里給出幾個你可以用來使代碼緊湊簡潔的例子。下面的語句是說“如果 y 是 9,給 x 賦值 10,不然賦值為 20”。如果需要的話我們也可以延長這條操作鏈。 

  1. x = 10 if (y == 9) else 20 

同樣地,我們可以對類做這種操作: 

  1. x = (classA if y == 1 else classB)(param1, param2) 

在上面的例子里 classA 與 classB 是兩個類,其中一個類的構造函數會被調用。

下面是另一個多個條件表達式鏈接起來用以計算最小值的例子: 

  1. def small(a,b,c):returnaifa<= banda<= celse(bifb<= aandb<= celsec)print(small(1,0,1))print(small(1,2,2))print(small(2,2,3))print(small(5,4,3))#Output#0 #1 #2 #3 

我們甚至可以在列表推導中使用三元運算符: 

  1. [m**2 if m > 10 else m**4 for m in range(50)]#=> [0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401] 

4. 多行字符串

基本的方式是使用源于 C 語言的反斜杠: 

  1. multiStr= “select * from multi_rowwhere row_id < 5”print(multiStr)# select * from multi_row where row_id < 5 

另一個技巧是使用三引號: 

  1. multiStr= “””select * from multi_rowwhere row_id < 5″””print(multiStr)#select * from multi_row#where row_id < 5 

上面方法共有的問題是缺少合適的縮進,如果我們嘗試縮進會在字符串中插入空格。所以***的解決方案是將字符串分為多行并且將整個字符串包含在括號中: 

  1. multiStr= (“select * from multi_row ”“where row_id < 5 ”“order by age”)print(multiStr)#select * from multi_row where row_id < 5 order by age 

5. 存儲列表元素到新的變量中

我們可以使用列表來初始化多個變量,在解析列表時,變量的數目不應該超過列表中的元素個數:【譯者注:元素個數與列表長度應該嚴格相同,不然會報錯】 

  1. testList= [1,2,3]x,y,z= testListprint(x,y,z)#-> 1 2 3 

6. 打印引入模塊的文件路徑

如果你想知道引用到代碼中模塊的絕對路徑,可以使用下面的技巧: 

  1. import threadingimport socketprint(threading)print(socket)#1- #2- 

7. 交互環境下的 “_” 操作符

這是一個我們大多數人不知道的有用特性,在 Python 控制臺,不論何時我們測試一個表達式或者調用一個方法,結果都會分配給一個臨時變量: _(一個下劃線)。 

  1. >>> 2+ 13>>> _3>>> print_3 

“_” 是上一個執行的表達式的輸出。

8. 字典/集合推導

與我們使用的列表推導相似,我們也可以使用字典/集合推導,它們使用起來簡單且有效,下面是一個例子: 

  1. testDict= {i: i *iforiinxrange(10)}testSet= {i *2foriinxrange(10)}print(testSet)print(testDict)#set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])#{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} 

注:兩個語句中只有一個 <:> 的不同,另,在 Python3 中運行上述代碼時,將 改為 。

9. 調試腳本

我們可以在 模塊的幫助下在 Python 腳本中設置斷點,下面是一個例子: 

  1. import pdbpdb.set_trace() 

我們可以在腳本中任何位置指定 并且在那里設置一個斷點,相當簡便。

10. 開啟文件分享

Python 允許運行一個 HTTP 服務器來從根路徑共享文件,下面是開啟服務器的命令: 

  1. # Python 2  
  2. python -m SimpleHTTPServer  
  3. # Python 3  
  4. python3 -m http.server 

上面的命令會在默認端口也就是 8000 開啟一個服務器,你可以將一個自定義的端口號以***一個參數的方式傳遞到上面的命令中。

11. 檢查 Python 中的對象

我們可以通過調用 dir() 方法來檢查 Python 中的對象,下面是一個簡單的例子: 

  1. test= [1,3,5,7]print(dir(test))[‘__add__’, ‘__class__’, ‘__contains__’, ‘__delattr__’, ‘__delitem__’, ‘__delslice__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__getitem__’, ‘__getslice__’, ‘__gt__’, ‘__hash__’, ‘__iadd__’, ‘__imul__’, ‘__init__’, ‘__iter__’, ‘__le__’, ‘__len__’, ‘__lt__’, ‘__mul__’, ‘__ne__’, ‘__new__’, ‘__reduce__’, ‘__reduce_ex__’, ‘__repr__’, ‘__reversed__’, ‘__rmul__’, ‘__setattr__’, ‘__setitem__’, ‘__setslice__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘append’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’] 

12. 簡化 if 語句

我們可以使用下面的方式來驗證多個值: 

  1. if m in [1,3,5,7]: 

而不是: 

  1. if m==1 or m==3 or m==5 or m==7: 

或者,對于 in 操作符我們也可以使用 ‘{1,3,5,7}’ 而不是 ‘[1,3,5,7]’,因為 set 中取元素是 O(1) 操作。

13. 一行代碼計算任何數的階乘

Python 2.x.

  1. result= (lambdak: reduce(int.__mul__,range(1,k+1),1))(3)print(result)#-> 6 

Python 3.x. 

  1. import functoolsresult= (lambdak: functools.reduce(int.__mul__,range(1,k+1),1))(3)print(result)#-> 6 

14. 找到列表中出現最頻繁的數 

  1. test= [1,2,3,4,2,2,3,1,4,4,4]print(max(set(test),key=test.count))#-> 4 

15. 重置遞歸限制

Python 限制遞歸次數到 1000,我們可以重置這個值: 

  1. import sysx=1001print(sys.getrecursionlimit())sys.setrecursionlimit(x)print(sys.getrecursionlimit())#1-> 1000#2-> 1001 

請只在必要的時候采用上面的技巧。

16. 檢查一個對象的內存使用

在 Python 2.7 中,一個 32 比特的整數占用 24 字節,在 Python 3.5 中利用 28 字節。為確定內存使用,我們可以調用 getsizeof 方法:

在 Python 2.7 中

  1. import sysx=1print(sys.getsizeof(x))#-> 24 

在 Python 3.5 中 

  1. import sysx=1print(sys.getsizeof(x))#-> 28 

17. 使用 __slots__ 來減少內存開支

你是否注意到你的 Python 應用占用許多資源特別是內存?有一個技巧是使用 __slots__ 類變量來在一定程度上減少內存開支。 

  1. import sysclassFileSystem(object):def __init__(self,files,folders,devices):self.files= filesself.folders= foldersself.devices= devicesprint(sys.getsizeof(FileSystem))classFileSystem1(object):__slots__= [‘files’,’folders’,’devices’]def __init__(self,files,folders,devices):self.files= filesself.folders= foldersself.devices= devicesprint(sys.getsizeof(FileSystem1))#In Python 3.5#1-> 1016#2-> 888 

很明顯,你可以從結果中看到確實有內存使用上的節省,但是你只應該在一個類的內存開銷不必要得大時才使用 __slots__。只在對應用進行性能分析后才使用它,不然地話,你只是使得代碼難以改變而沒有真正的益處。

【譯者注:在我的 win10 python2.7 中上面的結果是: 

  1. #In Python 2.7 win10#1-> 896#2-> 1016 

所以,這種比較方式是不那么讓人信服的,使用 __slots__ 主要是用以限定對象的屬性信息,另外,當生成對象很多時花銷可能會小一些,具體可以參見 python 官方文檔:

The slots declaration takes a sequence of instance variables and reserves just enough space in each instance to hold a value for each variable. Space is saved because dict is not created for each instance. 】

18. 使用 lambda 來模仿輸出方法 

  1. import syslprint=lambda *args:sys.stdout.write(” “.join(map(str,args)))lprint(“python”,”tips”,1000,1001)#-> python tips 1000 1001 

19.從兩個相關的序列構建一個字典 

  1. t1= (1,2,3)t2= (10,20,30)print(dict(zip(t1,t2)))#-> {1: 10, 2: 20, 3: 30} 

20. 一行代碼搜索字符串的多個前后綴 

  1. print(“http://www.google.com”.startswith((“http://”,”https://”)))print(“http://www.google.co.uk”.endswith((“.com”,”.co.uk”)))#1-> True#2-> True 

21. 不使用循環構造一個列表 

  1. import itertoolstest= [[-1,-2],[30,40],[25,35]]print(list(itertools.chain.from_iterable(test)))#-> [-1, -2, 30, 40, 25, 35] 

22. 在 Python 中實現一個真正的 switch-case 語句

下面的代碼使用一個字典來模擬構造一個 switch-case。 

  1. def xswitch(x):returnxswitch._system_dict.get(x,None)xswitch._system_dict= {‘files’: 10,’folders’: 5,’devices’: 2}print(xswitch(‘default’))print(xswitch(‘devices’))#1-> None#2-> 2   
責任編輯:龐桂玉 來源: 機器學習算法與Python學習
相關推薦

2018-05-10 17:39:13

Python 機器學習編程語言

2018-07-11 15:04:16

人工智能知識圖譜

2018-11-07 13:35:48

產品

2025-07-08 00:05:00

互聯網安全產業生態圈

2021-10-13 06:59:03

Python技巧編程

2023-10-26 18:03:14

索引Python技巧

2021-05-31 06:00:55

Python 3.4枚舉開發

2024-01-30 00:40:10

2022-02-24 10:05:20

Python編程語言代碼

2019-03-19 13:44:41

Python編程技巧編程語言

2024-05-22 09:29:43

2022-03-02 10:53:22

Postman工具開發

2020-12-01 17:46:24

FossilGit

2018-08-23 09:12:21

2023-06-30 08:27:20

2025-09-23 08:09:13

2025-05-09 09:26:12

2024-09-11 16:30:55

Python函數編程

2024-11-14 09:00:00

Python編程元編程
點贊
收藏

51CTO技術棧公眾號

成人无号精品一区二区三区| 亚洲黄色中文字幕| 成人av在线资源| 91av在线免费观看| 91无套直看片红桃在线观看| 色悠久久久久综合先锋影音下载| 欧美日韩人人澡狠狠躁视频| 欧美日韩高清免费| 精品女同一区二区三区| 久久国产毛片| 色与欲影视天天看综合网| 人妻少妇精品视频一区二区三区| 国产精品久久久久久久久久齐齐 | 亚洲成人999| 五月婷婷丁香综合网| 51漫画成人app入口| 国产精品久久久久久久久快鸭 | 日韩av.com| 绿色成人影院| 亚洲激情第一区| 亚洲电影网站| 你懂的在线观看| 高清国产一区二区三区| 国产精品美乳一区二区免费 | 高清视频一区二区三区| 中文字幕日韩第一页| 国产精品美女久久久| 欧美理论片在线观看| jizz18女人高潮| 香蕉视频一区| 亚洲成人亚洲激情| 三上悠亚 电影| 小说区图片区亚洲| 欧美亚洲精品一区| 99福利在线观看| av在线最新| 亚洲国产美国国产综合一区二区| 中国人体摄影一区二区三区| 欧美女优在线| 久久先锋资源网| 国产另类自拍| 蜜臀av在线观看| 国产福利一区二区三区视频| 国产在线播放不卡| 亚洲一区在线观| 成人一级片网站| 亚洲aⅴ日韩av电影在线观看 | 97精品在线| 亚洲免费高清视频| 国产精品无码毛片| 牛牛影视久久网| 亚洲成人久久电影| 亚洲啪av永久无码精品放毛片| 麻豆一二三区精品蜜桃| 欧美一区二区三区视频在线| 亚洲色图偷拍视频| 99国内精品久久久久| 3d动漫精品啪啪| 免费网站在线观看黄| 日本国产亚洲| 91精品国产日韩91久久久久久| 91 视频免费观看| 日本在线视频一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 婷婷激情综合五月天| 久久久国产精品入口麻豆| 欧美一级一级性生活免费录像| 欧美一级免费在线| 电影一区二区在线观看| 亚洲精品福利视频| 熟女俱乐部一区二区| 成人免费在线播放| 久久精品国产69国产精品亚洲| 91精品一区二区三区蜜桃| 欧美三级免费| 97精品视频在线播放| 99久久精品国产亚洲| 热久久久久久久| 91老司机在线| 无码国精品一区二区免费蜜桃| 久久久噜噜噜久久中文字幕色伊伊| 日韩av一区二区三区美女毛片| 欧美天天影院| 亚洲一区二区三区在线播放| 日本在线xxx| 日韩高清不卡| 欧美成人高清电影在线| 一级特级黄色片| 欧美日韩国产在线观看网站 | 欧美人与性禽动交精品| 麻豆91在线| 午夜不卡av在线| www.99av.com| 成人午夜大片| 中文字幕在线国产精品| 九九免费精品视频| 日韩电影在线看| 国产精品成人观看视频免费| 番号集在线观看| 亚洲午夜一二三区视频| 国产又黄又猛又粗| 欧美男人操女人视频| www.午夜精品| 一级黄色在线视频| 国产91对白在线观看九色| 日产精品一线二线三线芒果| 黄色在线观看视频网站| 欧美亚洲动漫另类| 中文文字幕文字幕高清| 小处雏高清一区二区三区| 91爱视频在线| 成人午夜精品福利免费| 国产精品乱码一区二区三区软件| 五月丁香综合缴情六月小说| 91精品福利观看| 亚洲午夜精品久久久久久久久久久久| 免看一级a毛片一片成人不卡| 日韩成人午夜精品| 久久手机视频| av影片在线| 日韩欧美激情四射| 黑人操日本美女| 青娱乐精品视频在线| 国产综合18久久久久久| 在线三级电影| 欧美精品一二三四| 夫妇露脸对白88av| 玖玖精品视频| 久久资源亚洲| 欧美裸体视频| 精品捆绑美女sm三区| 四虎永久免费在线| 麻豆精品在线看| 亚洲伊人婷婷| 精品176极品一区| 中日韩美女免费视频网址在线观看 | 911福利视频| 日本在线电影一区二区三区| 日韩免费在线观看视频| 日夜干在线视频| 精品久久久视频| 日本一卡二卡在线| 亚洲精品美女91| 国产日韩欧美一区二区三区四区| 日本动漫理论片在线观看网站| 欧美一区二区三区不卡| 午夜爽爽爽男女免费观看| 黄色资源网久久资源365| 一区不卡视频| www.欧美视频| 久久91精品国产91久久久| 性一交一乱一伧老太| 一级特黄大欧美久久久| 极品白嫩的小少妇| 亚洲深夜影院| 日韩av免费电影| 日日夜夜精品| 欧美精品一区二区免费| www香蕉视频| 亚洲一级二级三级| 欧美性xxxx图片| 日韩中文字幕麻豆| 中文字幕日韩一区二区三区| 国产成人视屏| 97人洗澡人人免费公开视频碰碰碰| 色窝窝无码一区二区三区| 精品久久中文字幕久久av| 国产一二三四五区| 老汉av免费一区二区三区| 中文字幕精品在线播放| 国内精品麻豆美女在线播放视频 | 波多野结衣一区二区三区在线| 国产网红主播福利一区二区| 五月天av在线播放| 重囗味另类老妇506070| 国产精品免费一区二区三区在线观看| 黄色在线观看www| 中文字幕精品一区久久久久| a天堂在线观看视频| 亚洲高清视频中文字幕| www.av天天| 国产在线国偷精品产拍免费yy| 国产资源在线免费观看| 美女精品一区最新中文字幕一区二区三区| 国产精品网址在线| 久草在线资源站资源站| 亚洲天堂日韩电影| 国产成人久久精品77777综合| 五月婷婷另类国产| 久久一级免费视频| 不卡免费追剧大全电视剧网站| 成人黄色一区二区| 欧美特黄一区| 一本色道婷婷久久欧美 | 久色婷婷小香蕉久久| 国产精品国产三级国产专区51| 一区二区美女| 97欧洲一区二区精品免费| 日日夜夜天天综合| 欧美激情中文字幕在线| 在线观看免费黄色| 日韩精品中文字幕在线观看| 国产乱码精品一区二三区蜜臂 | 亚洲国产精品传媒在线观看| 精人妻一区二区三区| 另类综合日韩欧美亚洲| 日韩av三级在线| 欧美另类视频| 亚洲视频精品一区| 综合亚洲自拍| 国产亚洲欧美另类一区二区三区| 黄页免费欧美| 国产v综合ⅴ日韩v欧美大片| av软件在线观看| 亚洲精品资源美女情侣酒店| 亚洲精品人妻无码| 在线不卡中文字幕| 波多野结衣视频观看| 欧美日韩美女在线观看| 国产乡下妇女做爰| 亚洲精品第1页| 一级性生活免费视频| 国产欧美日韩亚州综合| 香蕉视频黄色在线观看| av在线这里只有精品| 美女又黄又免费的视频| 国产综合成人久久大片91| 91人人澡人人爽人人精品| 亚久久调教视频| 国产精品12345| 精品电影一区| 久久久天堂国产精品| 天天射—综合中文网| 亚洲欧洲日本国产| 热久久天天拍国产| 亚洲激情电影在线| 久久高清免费| 亚洲日本精品| 99久久.com| 黄色一级视频播放| 久久久久久久久99精品大| 在线视频91| 97在线精品| 黄色网址在线免费看| 91tv精品福利国产在线观看| 热这里只有精品| 91精品综合| 欧美a级免费视频| 欧美特黄视频| 欧美s码亚洲码精品m码| 亚洲综合电影一区二区三区| 久久久久久久久久久免费视频| 午夜在线一区| 中文字幕永久视频| 久久99国内精品| 国内av免费观看| 国产99久久久国产精品免费看| 4438x全国最大成人| 成人教育av在线| 91av在线免费| 国产精品天美传媒沈樵| 小泽玛利亚一区二区免费| 一区二区三区在线观看网站| 国产无遮挡裸体免费视频| 欧美色xxxx| 亚洲av综合一区| 91麻豆精品国产自产在线| www久久久com| 日韩成人在线网站| xxxxx日韩| 欧美成人午夜激情| 日韩伦理福利| 国产精品一二区| 中文字幕一区图| 久久99久久精品国产| 波多野结衣在线观看一区二区| 国产91av视频在线观看| 国产精品黄色| 成人在线观看黄| 国产一区二区三区四区在线观看| 亚洲精品无码一区二区| 久久婷婷成人综合色| 日本在线观看网址| 亚洲尤物在线视频观看| 国产精品久久久久久人| 欧美丰满少妇xxxbbb| 少妇高潮一区二区三区99小说| 在线观看成人黄色| 欧美videossex另类| 国产精品扒开腿做爽爽爽男男| 精品国产一区二| 日本高清久久一区二区三区| 在线精品国产| 久久九九国产视频| 福利91精品一区二区三区| 在线观看免费黄色网址| 91久久高清国语自产拍| 中文字幕99| 亚洲专区在线| 日本精品一二三| 国产精品天天摸av网| 久久久久久久久影院| 91精品国产入口| 99免在线观看免费视频高清| 国产亚洲成av人片在线观看桃| 污片在线免费观看| 国产精品亚发布| 亚洲品质自拍| 国产免费一区二区视频| 激情欧美一区二区三区在线观看| 一起草在线视频| 国产精品盗摄一区二区三区| 国产精品久久久久久久久久精爆| 精品久久久久久无| 黄色免费在线观看网站| 国产精品国产三级国产专播精品人| 91精品国产乱码久久久竹菊| 亚洲欧美日产图| 久久中文精品| 波多野结衣福利| 午夜欧美在线一二页| 精品国产av一区二区| 久久久精品久久久久| 成人精品一区二区三区电影| 欧美一区二区三区成人久久片| 亚洲日本黄色| 黑森林av导航| 亚洲综合一区二区三区| 精品久久久无码中文字幕| 久久精品视频网站| 亚洲精品成a人ⅴ香蕉片| 深田咏美在线x99av| 日韩精品一二三| 熟女俱乐部一区二区视频在线| 天天操天天干天天综合网| 人妻精品一区二区三区| 欧美激情在线有限公司| 成人自拍在线| 91午夜在线观看| 波多野结衣中文一区| 国产一级特黄a高潮片| 日韩女优制服丝袜电影| 亚洲制服国产| 99影视tv| 亚洲三级影院| 成人无码www在线看免费| 欧美日韩国产黄| 黄色电影免费在线看| 国产精品久久久久久久av电影| 波多野结衣一区| 国产成人美女视频| 亚洲人成亚洲人成在线观看图片 | 久久精品久久久精品美女| 日本爱爱爱视频| 欧美日韩第一区日日骚| 国产黄色在线网站| 波多野结衣成人在线| 激情久久久久久| 亚洲欧美视频在线播放| 91国偷自产一区二区三区成为亚洲经典| 日韩精品系列| 国产精品久久久久久一区二区| 成人在线免费观看视频| 青青草原播放器| 午夜激情综合网| 蜜桃视频在线观看网站| 国产欧亚日韩视频| 国产尤物精品| 91成年人网站| 制服丝袜亚洲精品中文字幕| 色网在线观看| 欧美日韩电影一区二区| 九色综合狠狠综合久久| 国产在线欧美在线| 亚洲三级免费看| 激情不卡一区二区三区视频在线| www.xxx麻豆| 久久九九全国免费| 99在线观看免费| 欧美一区二区色| 亚欧美无遮挡hd高清在线视频| 在线观看免费视频国产| 91国产丝袜在线播放| 超碰在线观看免费| 免费h精品视频在线播放| 精品一区二区三区在线观看| 日韩精品一区二区在线播放| 国产一区二区三区在线观看网站| 国产一区二区久久久久| 日韩激情免费视频| 亚洲三级电影网站| 男女av在线| 97人人澡人人爽| 日韩av不卡在线观看| 久久精品亚洲无码| 亚洲一区二区黄| av综合网址| 亚洲va在线va天堂va偷拍| 欧美性高潮床叫视频| 一区二区三区伦理|