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

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

連接兩個(gè)列表 - '+ ='和extend()之間的區(qū)別

連接兩個(gè)列表 - '+ ='和extend()之間的區(qū)別

手掌心 2019-08-31 10:43:53
我已經(jīng)看到實(shí)際上有兩種(可能更多)方法在Python中連接列表:一種方法是使用extend()方法:a = [1, 2]b = [2, 3]b.extend(a)另一個(gè)使用加號(hào)(+)運(yùn)算符:b += a現(xiàn)在我想知道:這兩個(gè)選項(xiàng)中的哪一個(gè)是“pythonic”方式進(jìn)行列表連接,兩者之間是否存在差異(我查閱了官方Python教程但未找到任何關(guān)于此主題的內(nèi)容)。
查看完整描述

3 回答

?
白板的微信

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

字節(jié)碼級(jí)別的唯一區(qū)別在于,這種.extend方式涉及函數(shù)調(diào)用,這在Python中略高于INPLACE_ADD。


除非你執(zhí)行這項(xiàng)行動(dòng)數(shù)十億次,否則你應(yīng)該擔(dān)心的事情真的沒什么。但是,瓶頸可能會(huì)出現(xiàn)在其他地方。


查看完整回答
反對 回復(fù) 2019-08-31
?
人到中年有點(diǎn)甜

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

您不能將+ =用于非局部變量(對于函數(shù)而言不是局部的變量,也不是全局變量)


def main():

    l = [1, 2, 3]


    def foo():

        l.extend([4])


    def boo():

        l += [5]


    foo()

    print l

    boo()  # this will fail


main()

這是因?yàn)閷τ跀U(kuò)展案例編譯器將l使用LOAD_DEREF指令加載變量,但對于+ =它將使用LOAD_FAST- 并且你得到*UnboundLocalError: local variable 'l' referenced before assignment*


查看完整回答
反對 回復(fù) 2019-08-31
?
MMTTMM

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

你可以鏈接函數(shù)調(diào)用,但你不能直接+ =函數(shù)調(diào)用:


class A:

    def __init__(self):

        self.listFoo = [1, 2]

        self.listBar = [3, 4]


    def get_list(self, which):

        if which == "Foo":

            return self.listFoo

        return self.listBar


a = A()

other_list = [5, 6]


a.get_list("Foo").extend(other_list)

a.get_list("Foo") += other_list  #SyntaxError: can't assign to function call


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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