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

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

函數(shù)調(diào)用中的星號

函數(shù)調(diào)用中的星號

達(dá)令說 2019-07-30 11:41:19
函數(shù)調(diào)用中的星號我正在使用itertools.chain以這種方式“壓扁”列表列表:uniqueCrossTabs = list(itertools.chain(*uniqueCrossTabs))這有什么不同于說:uniqueCrossTabs = list(itertools.chain(uniqueCrossTabs))
查看完整描述

3 回答

?
慕虎7371278

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

* 是“splat”運(yùn)算符:它將列表作為輸入,并將其擴(kuò)展為函數(shù)調(diào)用中的實(shí)際位置參數(shù)。

如果uniqueCrossTabs是的話[ [ 1, 2 ], [ 3, 4 ] ],那itertools.chain(*uniqueCrossTabs)就像說的一樣itertools.chain([ 1, 2 ], [ 3, 4 ])

這明顯不同于傳入uniqueCrossTabs。在您的情況下,您有一個(gè)您希望展平的列表列表; 什么itertools.chain()是在你傳遞給它的所有位置參數(shù)的串聯(lián)上返回一個(gè)迭代器,其中每個(gè)位置參數(shù)本身是可迭代的。

換句話說,您希望將每個(gè)列表uniqueCrossTabs作為參數(shù)傳遞給chain()它們,它們將它們鏈接在一起,但是您沒有單獨(dú)變量中的列表,因此您使用*運(yùn)算符將列表列表擴(kuò)展為多個(gè)列表參數(shù)。

正如Jochen Ritzel在評論中指出的那樣,chain.from_iterable()它更適合于這種操作,因?yàn)樗俣梢缘淮蔚?。您的代碼變得簡單:

uniqueCrossTabs = list(itertools.chain.from_iterable(uniqueCrossTabs))


查看完整回答
反對 回復(fù) 2019-07-30
?
慕桂英546537

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


它將序列拆分為函數(shù)調(diào)用的單獨(dú)參數(shù)。


>>> def foo(a, b=None, c=None):

...   print a, b, c

... 

>>> foo([1, 2, 3])

[1, 2, 3] None None

>>> foo(*[1, 2, 3])

1 2 3

>>> def bar(*a):

...   print a

... 

>>> bar([1, 2, 3])

([1, 2, 3],)

>>> bar(*[1, 2, 3])

(1, 2, 3)


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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