" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中[[]] * (n)和[[] for _ in range(n)]的區(qū)別詳解

 更新時(shí)間:2024年02月07日 09:14:55   作者:Smart_Maggie  
本文主要介紹了python中[[]] * (n)和[[] for _ in range(n)]的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、現(xiàn)象

刷leetcode207的時(shí)候碰到一個(gè)坑,用[[]] * (n)初始化二維數(shù)組,邏輯是正確的,但是結(jié)果始終不對(duì)。

2、原因

最后定位是初始化語句使用錯(cuò)誤導(dǎo)致的,我使用的是[[]] * (n),應(yīng)該使用[[] for _ in range(n)]

3、解釋

[[]] * (n)和[[] for _ in range(n)]打印結(jié)果完全一樣,但是原理卻不一樣

[[]] * (n)表示復(fù)制子列表( 此處為[] ) n次,這些子列表指向或引用相同的對(duì)象,也就是內(nèi)存地址一樣,因此修改其中一個(gè)子列表元素,會(huì)同時(shí)影響其他子列表的值,如下面代碼中的L1

[[] for _ in range(n)] 表示列表的子列表元素是每次for循環(huán)創(chuàng)建的新對(duì)象,這些子列表指向或引用不同的對(duì)象,內(nèi)存地址當(dāng)然也不一樣,因此修改其中一個(gè)子列表元素,不會(huì)影響其他子列表的值,如下面代碼中的L2

n = 2
L1 = [[]] * n
L2 = [[] for _ in range(n)]
print(f'L1:{L1}, L2:{L2}')
print(L2 == L2)   #值相等
print(id(L1[0]),id(L1[1])) # L1列表內(nèi)的元素,地址相同
print(id(L2[0]),id(L2[1])) # L2列表內(nèi)的元素,地址不同
L1[0].append(1)
L2[0].append(1)
print(f'L1:{L1}, L2:{L2}')

打印結(jié)果:

4、注意

L1 中的元素是列表,是可變對(duì)象,使用*n復(fù)制,不同元素才會(huì)指向同一個(gè)對(duì)象,但是如果L1中元素是不可變對(duì)象,比如int、string、float、tuple,使用*n復(fù)制的時(shí)候,不同元素也會(huì)指向同一個(gè)元素,但是修改時(shí),由于是不可變對(duì)象,修改時(shí)會(huì)重新開辟一塊內(nèi)存,變量指向新地址,這樣修改其中一個(gè)元素,不會(huì)影響其他元素

i = 2
L1 = [2] * i   # 列表元素為不可變對(duì)象 int
print(L1)
print(id(L1[0]),id(L1[1]))
L1[0] = 4
print(id(L1[0]),id(L1[1]))
print(L1)

打印結(jié)果為

5、其他

可變數(shù)據(jù)類型:列表list[ ]、字典dict{ }

不可變數(shù)據(jù)類型:整型int、字符串str' '、元組tuple()浮點(diǎn)數(shù)float

到此這篇關(guān)于python中[[]] * (n)和[[] for _ in range(n)]的區(qū)別詳解的文章就介紹到這了,更多相關(guān)python [[]] * (n)和[[] for _ in range(n)]內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python區(qū)塊鏈簡易版交易實(shí)現(xiàn)示例

    python區(qū)塊鏈簡易版交易實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了python區(qū)塊鏈簡易版交易實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python和shell監(jiān)控linux服務(wù)器的詳細(xì)代碼

    python和shell監(jiān)控linux服務(wù)器的詳細(xì)代碼

    這篇文章主要為大家介紹了使用python和shell監(jiān)控linux服務(wù)器的詳細(xì)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 正確的理解和使用Django信號(hào)(Signals)

    正確的理解和使用Django信號(hào)(Signals)

    這篇文章主要介紹了如何正確的理解和使用Django信號(hào)(Signals),幫助大家更好的理解和學(xué)習(xí)是Django,感興趣的朋友可以了解下
    2021-04-04
  • 解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題

    解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題

    這篇文章主要介紹了解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python如何復(fù)制別人的虛擬環(huán)境

    python如何復(fù)制別人的虛擬環(huán)境

    這篇文章主要介紹了python如何復(fù)制別人的虛擬環(huán)境問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Python3 全自動(dòng)更新已安裝的模塊實(shí)現(xiàn)

    Python3 全自動(dòng)更新已安裝的模塊實(shí)現(xiàn)

    這篇文章主要介紹了Python3 全自動(dòng)更新已安裝的模塊實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 基于Python自建一個(gè)高效多媒體處理工具

    基于Python自建一個(gè)高效多媒體處理工具

    本文介紹了如何使用Python構(gòu)建一個(gè)全棧多媒體處理工具,涵蓋視頻、音頻和圖像處理等功能,并,文中詳細(xì)描述了項(xiàng)目的技術(shù)選型、架構(gòu)設(shè)計(jì)及核心代碼實(shí)現(xiàn),特別強(qiáng)調(diào)了異步處理、性能優(yōu)化、文件管理等難點(diǎn)攻克,此外還展望了未來可能方向,需要的朋友可以參考下
    2026-04-04
  • Python使用add_subplot與subplot畫子圖操作示例

    Python使用add_subplot與subplot畫子圖操作示例

    這篇文章主要介紹了Python使用add_subplot與subplot畫子圖操作,涉及Python使用matplotlib模塊進(jìn)行圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • python?sklearn?畫出決策樹并保存為PDF的實(shí)現(xiàn)過程

    python?sklearn?畫出決策樹并保存為PDF的實(shí)現(xiàn)過程

    這篇文章主要介紹了python?sklearn?畫出決策樹并保存為PDF的實(shí)現(xiàn)過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python比較兩個(gè)列表是否相等的方法

    python比較兩個(gè)列表是否相等的方法

    這篇文章主要介紹了python比較兩個(gè)列表是否相等的方法,實(shí)例分析了Python中==和is兩種方法的區(qū)別,需要的朋友可以參考下
    2015-07-07

最新評(píng)論

忻州市| 宜阳县| 本溪| 城口县| 泰安市| 吉安县| 定兴县| 长寿区| 靖州| 同江市| 东丽区| 武穴市| 东港市| 四川省| 西城区| 潼南县| 中方县| 武穴市| 清丰县| 福贡县| 正镶白旗| 蓬莱市| 柏乡县| 禄劝| 萍乡市| 昆山市| 三门县| 佛教| 平远县| 玛多县| 临夏市| 大庆市| 剑河县| 河间市| 莎车县| 阳原县| 云南省| 沙河市| 南皮县| 平陆县| 台安县|