您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何在Python中實現元組拆包,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
python的五大特點:1.簡單易學,開發程序時,專注的是解決問題,而不是搞明白語言本身。2.面向對象,與其他主要的語言如C++和Java相比, Python以一種非常強大又簡單的方式實現面向對象編程。3.可移植性,Python程序無需修改就可以在各種平臺上運行。4.解釋性,Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。
1.元組?
元組的特點:
相當于不可變得列表;
可用于沒有字段名的記錄。
pythn里的元組就相當于C語言里的數組,是不可變的,但是也可以容納不同類型的元素,也是容器的一種。
>>> t = (1,2,'a','b','c') >>> t (1, 2, 'a', 'b', 'c') >>> type(t) <class 'tuple'>
元組主要有兩個方法:
index():獲取指定元素在元組內的下標
count():統計指定元素在元組內出現的次數
元組的定義和結構和列表很像,但是使用起來比較簡單,元組的元素用‘()'包含起來。
其實在元組的使用過程中有一些比較方便和實用的小方法,接下來就做一個簡單的介紹!
2.元祖拆包
元祖拆包就是將元組中的元素分別賦給變量:
>>> info = ('xian','2018','7.17') >>> info ('xian', '2018', '7.17') >>> city,year,date = info >>> city 'xian' >>> year '2018' >>> date '7.17'
拆包就相當于把元組中的元素拆分成單個的元素,可以用這些被拆分了的元素來完成想要做的事!
比如,可以十分方便的輸出元組內的值:
>>> print('%s\n%s\n%s\n'%info) xian 2018 7.17
還可以玩的更六一點哦:
>>> infos = [info,('jian','2018','7.22'),('zhengzhou','2018','9.1')] >>> infos [('xian', '2018', '7.17'), ('jian', '2018', '7.22'), ('zhengzhou', '2018', '9.1')] >>> for i in infos : print('%s %s %s'%i) xian 2018 7.17 jian 2018 7.22 zhengzhou 2018 9.1
當然,還有更加666的用法哦,有時候我們可以多個參數寫進一個元組里,然后把這個元組當做相應函數的參數列表穿進去:
先介紹一個python的內建函數:divmod(a,b) a,b是兩個數,這個函數返回一個元組,這個元組為(a//b,a%b),即返回a除以b,a%b的結果組成的元組。 現在我們就將一個元組作為divmod的參數傳進去:
>>> a = (20,8) >>> divmod(*a) (2, 4) >>>
不過我們注意到,雖然我們將參數放進了一個元組里,但是在作為參數列表傳進去的時候在元組名前要加一個 ‘ * ' ! 當我只需要其中幾個元素的時候怎么辦呢?
>>> _,_,date = info >>> date '7.17'
這里‘ _ '就相當于一個占位符,可以抵消掉我們不想要的元素! 這里又有一個問題了,當元組內的元素太多,而我又只要其中幾個元素的值,總不能用很多變量去抵消我不要的元素吧?當然不用!
>>> city,*rest = info >>> city 'xian' >>> rest ['2018', '7.17']
在這里我們用*var-name的方法代表剩余的元素,在python里常用這種方法來代表不起確定數量參數!
>>> a,b,*rest,c,d = range(10) >>> a 0 >>> b 1 >>> c 8 >>> d 9 >>> rest [2, 3, 4, 5, 6, 7]
在python里有一個很方便交換變量值的方法:
>>> a = 10 >>> b = 20 >>> a,b = b,a >>> a 20 >>> b
3.具名元組?
為什么在文章開頭說元祖的特點之一是沒有字段名記錄呢?如果元組里的元素有字段名,那么元組不就是字典,是鍵-值對了嗎?的確,我們一般用的元組中的各個元素是沒有字段名的,但是還有一種特殊的元組——具名元組。
具名元組是帶有字段名元組,雖然說是元組,但是實際上是類的一種。要想構建一個具名元組,需要使用python里的一個工廠函數:collections.namedtuple(typename, field_names, verbose=False, rename=False) . namedtuple需要兩個必要函數,typename是構建的具名元組的元組類型名,field_names是這個具名元組類里的各個字段的名字,名字之間用空格或者逗號隔開,verbose若為True則會打印這個類的詳細信息,若rename為True則會把field_names中與python關鍵字沖突或者重復的字段用這個關鍵字的位置來替代,如:[‘abc', ‘def', ‘ghi', ‘abc']會被轉換為 [‘abc', ‘_1', ‘ghi', ‘_3']。
>>>City = namedtuple('City',"country,capital,population") >>>xian = City('china','beijing','1000w') >>>> xian City(country='china', capital='beijing', population='1000w')
看完上述內容,你們對如何在Python中實現元組拆包有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。