摘要:通過(guò)字段名或者位置來(lái)獲取一個(gè)字段的信息屬性是一個(gè)包含這個(gè)類所有字段名稱的元組用通過(guò)接受一個(gè)可迭代對(duì)象來(lái)生成這個(gè)類的一個(gè)實(shí)例作用跟一樣把具名元組以形式返回
lax_coordinates = (33.9425, -118.408056) city, year, pop, chg, area = ("Tokyo", 2003, 32450, 0.66, 8014) traveler_ids = [("USA", "31195855"), ("BRA", "CE342567"), ("ESP", "XDA205856")] for passport in sorted(traveler_ids): print("%s/%s" % passport) for country, _ in traveler_ids: # 元組拆包 print(country)元組拆包可以應(yīng)用到任何可迭代對(duì)象
1 平行賦值
latitude, longitude = lax_coordinates
2 不使用中間變量
latitude, longitude = longitude, latitude
3 用*運(yùn)算符把一個(gè)可迭代對(duì)象拆開(kāi)作為函數(shù)的參數(shù)
t = (20, 8) quotient, remainder = divmod(*t)
4 讓一個(gè)函數(shù)可以以元組的形式返回多個(gè)值
import os _, filename = os.path.split("/home/app/.ssh/idrsa.pub") print(filename)
用*來(lái)處理剩下的元素
a, b, *rest = range(5) print(*rest)
*前綴只能用在一個(gè)變量名前面,但是位置可以隨意
a, *body, c, d = range(5) print(*body)嵌套元組拆包
metro_areas = [ ("Tokyo", "JP", 36.933, (35.689722, 139.691667)), ("Delhi NCR", "IN", 21.935, (28.613889, 77.208889)), ("Mexico, City", "MX", 20.142, (19.43333, -99.133333)), ("New York-Newark", "US", 20.142, (40.808611, -74.020386)), ("Sao Paulo", "BR", 19.649, (-23.547778, -46.635833)), ] print("{:15} |{:^9} |{:^9}".format("", "lat.", "long.")) fmt = "{:15} | {:9.4f}|{:9.4f}" for name, cc, pop, (latitude, longitude) in metro_areas: if longitude <= 0: print(fmt.format(name, latitude, longitude))具名元組
collections.namedtuple 是一個(gè)工廠函數(shù),可以用來(lái)構(gòu)建一個(gè)帶字段名字的元組和一個(gè)有名字的類(利于調(diào)試)
創(chuàng)建一個(gè)具名元組需要兩個(gè)參數(shù),一個(gè)是類名,另一個(gè)是類的各個(gè)字段的名字。
存放在對(duì)應(yīng)字段的數(shù)據(jù)要以一串參數(shù)的形式傳入到構(gòu)造函數(shù)中。
通過(guò)字段名或者位置來(lái)獲取一個(gè)字段的信息
from collections import namedtuple City = namedtuple("City", "name country population coordinates") tokyo = City("Tokyo", "JP", 36.933, (35.689722, 139.691667)) print(tokyo)
_fields屬性是一個(gè)包含這個(gè)類所有字段名稱的元組
用_make()通過(guò)接受一個(gè)可迭代對(duì)象來(lái)生成這個(gè)類的一個(gè)實(shí)例,作用跟City(*delhi_data)一樣
_asdict把具名元組以collections.OrderedDict形式返回
print(City._fields) LatLong = namedtuple("LatLong", "lat long") delhi_data = ("Delhi NCR", "IN", 21.935, LatLong(28.613889, 77.208889)) delhi = City._make(delhi_data) print(delhi._asdict()) for key, value in delhi._asdict().items(): print(key + ":", value)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42297.html
摘要:元組運(yùn)算符可與使用加號(hào)來(lái)連接兩個(gè)元組輸出為也可以使用乘號(hào)輸出為當(dāng)然也可以用成員運(yùn)算符通用地可以使用刪除元組元組相關(guān)內(nèi)置函數(shù)計(jì)算元組元素個(gè)數(shù)。返回元組中元素最大值返回元組中元素最小值。可迭代對(duì)象將可迭代對(duì)象轉(zhuǎn)換為元組。 元組是什么? 你可以把它看作是只讀的列表,因?yàn)樵M不可改變,但是要注意,如果元組中含有列表元素,則該列表元素是可變的,通俗地講就是兒子不可變,但是孫子可變 由于元組不可...
摘要:元組和列表的為唯一區(qū)別就是列表可以更改,元組不可以更改,其他功能與列表一樣創(chuàng)建元組的兩種方法第一種第二種如果元祖內(nèi)只有一個(gè)元素,那么需要加上一個(gè)逗號(hào),否則就變成字符串了。 元組(tuple)和列表的為唯一區(qū)別就是列表可以更改,元組不可以更改,其他功能與列表一樣 創(chuàng)建元組的兩種方法 第一種 ages = (11, 22, 33, 44, 55) 第二種 ages = tuple((11,...
摘要:元組是不可以改變的序列,如果元組的元素包含列表字典是支持修改操作的。這就意味著它們通過(guò)算法得到的值總是一個(gè)值。這是作為字典鍵值的一個(gè)必備條件。 元組是不可以改變的序列,如果元組的元素包含列表、字典是支持修改操作的。因?yàn)椴豢勺兯栽氐男薷臅?huì)報(bào)錯(cuò): >>> tt=(3,4,5) >>> type(tt) >>> tt[2]=4 Traceback (most recent call l...
摘要:與聲明數(shù)組類型類似只不過(guò)在數(shù)組基礎(chǔ)上更加細(xì)分化每個(gè)元素示例順序不可以顛倒長(zhǎng)度不可以違規(guī)是固定的如果你的數(shù)組沒(méi)有滿足元組要求報(bào)錯(cuò)意思就是你的屬性個(gè)在類型中缺失,但在元組中設(shè)定是必須的如果你的元素沒(méi)有滿足數(shù)組的長(zhǎng)度會(huì)怎么樣呢報(bào)錯(cuò)意思是你的數(shù)組不 與 聲明數(shù)組類型 類似 只不過(guò)在 數(shù)組 基礎(chǔ)上更加細(xì)分化每個(gè)元素 示例: let myTuple: [number, string, boo...
摘要:類元編程是指在運(yùn)行時(shí)創(chuàng)建或定制類的技藝。注意在中做元編程時(shí)最好不要用和函數(shù)。三元類基礎(chǔ)知識(shí)元類是類元編程最高級(jí)的工具使用元類可以創(chuàng)建具有某種特質(zhì)的全新變種,例如抽象基類。建議除非開(kāi)發(fā)框架,否則不要在生產(chǎn)代碼中定義元類或抽象基類。 導(dǎo)語(yǔ):本文章記錄了本人在學(xué)習(xí)Python基礎(chǔ)之元編程篇的重點(diǎn)知識(shí)及個(gè)人心得,打算入門Python的朋友們可以來(lái)一起學(xué)習(xí)并交流。 本文重點(diǎn): 1、了解運(yùn)行時(shí)創(chuàng)建...
閱讀 2571·2021-08-20 09:38
閱讀 1355·2019-08-30 15:43
閱讀 593·2019-08-29 17:13
閱讀 1601·2019-08-29 14:01
閱讀 1314·2019-08-29 13:29
閱讀 2322·2019-08-23 18:29
閱讀 2047·2019-08-23 17:51
閱讀 1915·2019-08-23 17:16