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

首頁 > 編程 > Python > 正文

Python元組拆包和具名元組解析實例詳解

2020-02-22 23:33:01
字體:
來源:轉載
供稿:網友

前言

在Python中元組是一個相較于其他語言比較特別的一個內置序列類型。有些python入門教程把元組成為“不可變的列表”,這種說法是不完備的,其并沒有完整的概括元組的特點。除了用作不可變的列表,它還可以用于沒有字段名的數據記錄。下面的內容就圍繞元組作為數據記錄屬性展開,并介紹帶字段名的具名元組函數namedtuple,列表屬性不再本文中敘述。

元組對于數據的記錄

元組中的每個元素都存放了記錄中一個字段的數據,外加這個字段的位置,正是這個位置信息給數據賦予了意義。

下面的一段代碼就演示了元組被當作記錄來使用。如果在任何的表達式里我們在元組內對元素排序,這些元素多攜帶的信息就會丟失,因為這些信息是跟它們的位置強關聯的。

#把元組作記錄  >>> xiaoming, xiaohua = (16, 18)  >>> xiaoming  16  >>> students_info = [('xiaoming', 16), ('xiaohua', 18), ('hanmeimei', 20)]  >>> for student in students_info:    print('%s is %d years old.'%student)  xiaoming is 16 years old.  xiaohua is 18 years old.  hanmeimei is 20 years old.  >>>

在這個示例中,我們把元組(16,18)里的元素分別賦值給變量xiaoming,xiaohua。同樣在for循環中,一個%運算符就把student元組里的元素對應到了Print函數的格式字符串空檔中。這兩個都是元組拆包的應用。
元組拆包可以應用到任何可迭代對象上,唯一的硬性要求是,被可迭代對象中的元素數量必須要跟接受這些元素的元組的空檔數一致。除非用*來表示忽略多余的元素。

元組拆包

最好辨認的元組拆包形式就是平行賦值 ,也就是把一個可迭代對象里的元素,一并賦值到由對應的變量組成的元組中。例如:

>>> age_list = (16,18)  >>> xiaoming, xiaohua = age_list #這里就是元組拆包

另一個我們熟悉的平行賦值的例子就是交換兩個變量的值:

>>> a, b = b, a #Python就是如此的優雅

還可以用*運算符把一個可迭代對象拆開作為函數的參數:

>>> divmod(20,8)  (2, 4)  >>> t = (20, 8)  >>> divmod(*t)  (2, 4)  >>> quotient, remainder = divmod(*t)  >>> quotient, remainder  (2, 4)

用*來處理剩下的元素

在Python中,函數用*args來獲取不確定數量的參數算是一種經典寫法了。在Python3中,這個概念被擴展到了平行賦值中:

>>> a, b, *rest = range(5)  >>> a, b, rest  (0, 1, [2, 3, 4])  >>> a, b, *rest = range(3)  >>> a, b, rest  (0, 1, [2])  >>> a, b, *rest = range(2)  >>> a, b, rest  (0, 1, [])            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和顺县| 修武县| 习水县| 廉江市| 乐业县| 广安市| 温泉县| 阿瓦提县| 孟连| 多伦县| 兰坪| 通河县| 徐汇区| 宁远县| 扬州市| 福泉市| 获嘉县| 都安| 扎鲁特旗| 修武县| 拉孜县| 和平区| 元朗区| 新兴县| 福建省| 英吉沙县| 阿坝| 澄江县| 霍城县| 呼图壁县| 榆中县| 大荔县| 玉环县| 惠水县| 天峨县| 监利县| 凌云县| 高雄市| 天柱县| 方正县| 股票|