第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何從元組列表中提取第n個(gè)元素?

如何從元組列表中提取第n個(gè)元素?

慕哥6287543 2019-10-30 11:13:44
我正在嘗試從元組列表中獲取第n個(gè)元素。我有類似的東西:elements = [(1,1,1),(2,3,7),(3,5,10)]我希望僅將每個(gè)元組的第二個(gè)元素提取到一個(gè)列表中:seconds = [1, 3, 5]我知道可以通過(guò)for循環(huán)來(lái)完成,但是我想知道是否還有另一種方法,因?yàn)槲矣谐汕先f(wàn)的元組。
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

我知道可以用FOR完成,但是我想知道是否還有其他方法


還有另一種方法。您也可以使用map和itemgetter進(jìn)行操作:


>>> from operator import itemgetter

>>> map(itemgetter(1), elements)

但是,這仍然在內(nèi)部執(zhí)行循環(huán),并且比列表理解要慢一些:


setup = 'elements = [(1,1,1) for _ in range(100000)];from operator import itemgetter'

method1 = '[x[1] for x in elements]'

method2 = 'map(itemgetter(1), elements)'


import timeit

t = timeit.Timer(method1, setup)

print('Method 1: ' + str(t.timeit(100)))

t = timeit.Timer(method2, setup)

print('Method 2: ' + str(t.timeit(100)))

結(jié)果:


方法1:1.25699996948

方法2:1.46600008011

如果您需要遍歷列表,則可以使用a for。


查看完整回答
反對(duì) 回復(fù) 2019-10-30
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

我在尋找以最快的方式提取2元組列表的第二個(gè)元素時(shí)發(fā)現(xiàn)了這一點(diǎn)。不是我想要的,但是運(yùn)行了與第3種方法所示相同的測(cè)試,并測(cè)試了zip方法


setup = 'elements = [(1,1) for _ in range(100000)];from operator import itemgetter'

method1 = '[x[1] for x in elements]'

method2 = 'map(itemgetter(1), elements)'

method3 = 'dict(elements).values()'

method4 = 'zip(*elements)[1]'


import timeit

t = timeit.Timer(method1, setup)

print('Method 1: ' + str(t.timeit(100)))

t = timeit.Timer(method2, setup)

print('Method 2: ' + str(t.timeit(100)))

t = timeit.Timer(method3, setup)

print('Method 3: ' + str(t.timeit(100)))

t = timeit.Timer(method4, setup)

print('Method 4: ' + str(t.timeit(100)))


Method 1: 0.618785858154

Method 2: 0.711684942245

Method 3: 0.298138141632

Method 4: 1.32586884499

因此,如果您有2個(gè)元組對(duì),只需將其轉(zhuǎn)換為dict并取值就可以快兩倍。


查看完整回答
反對(duì) 回復(fù) 2019-10-30
  • 3 回答
  • 0 關(guān)注
  • 4131 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)