欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python開發(fā)中兩個list之間傳值示例

 更新時(shí)間:2021年09月04日 16:03:59   作者:程序員進(jìn)化不脫發(fā)!  
這篇文章主要介紹了python開發(fā)中兩個list列表之間傳值的方法,有需要的朋友可以借鑒參考下,希望可以有所幫助,希望大家共同學(xué)習(xí),共同進(jìn)步

由于改代碼因?yàn)檫@個問題卡了半個小時(shí)特此記錄

首先對于一個單層的列表

賦值如下,可以看見,如果直接使用 = 的話。其中一個變換便會引起另外一個變換,這時(shí)因?yàn)檫@兩個list被python解釋的時(shí)候使用的相同的地址,如下面輸出的 id()中的內(nèi)容,所以此時(shí)如果想讓一個列表接收到另外一個列表的值,并且在接收到值后不會因?yàn)槠渲腥我庖粋€值的改變而改變,這時(shí)候就需要使用copy方法,這里可以解釋成,當(dāng)使用了copy方法后,python單獨(dú)創(chuàng)建了找個一個內(nèi)存區(qū)的地址放了新的那個值。

a = [ 1,2,3]
b = a
a[0] = a[0] +1
print(a)
print(b)
print(id(a[0]))
print(id(b[0]))
print("*"*20)
a1 = [5,6,7]
b1 = a1.copy()
a1[0] = a1[0] + 1
print(a1)
print(b1)
print(id(a1[0]))
print(id(b1[0]))


輸出

[2, 2, 3]
[2, 2, 3]
140729246982592
140729246982592
********************
[6, 6, 7]
[5, 6, 7]
140729246982720
140729246982688

對于多層列表

這也是我今天被坑的地方,注意到了第一層,但卻沒有注意到第二層,如下可以看見,雖然我們使用了copy方法,但是內(nèi)層[]則沒有

a = [[1,2,4],[3,5,8],[],[]]
b = a.copy()
print("打印數(shù)組地址:")
print(id(a))
print(id(b))
print("*"*40)
print("打印內(nèi)層元素地址:")
print(id(a[0]))
print(id(b[0]))
print(id(a[0][0]))
print(id(b[0][0]))
print("*"*40)
a.append(4)
a[1][0] = a[1][0] + 1
print(a)
print(b)
print(id(a[4]))

輸出

打印數(shù)組地址:
1938878979528
1938879043976
****************************************
打印內(nèi)層元素地址:
1938877731208
1938877731208
140729246982560
140729246982560
****************************************
[[1, 2, 4], [4, 5, 8], [], [], 4]
[[1, 2, 4], [4, 5, 8], [], []]
140729246982656

在這里插入圖片描述

所以賦值操作應(yīng)該為:

import copy
a = [[1,2,4],[3,5,8],[],[]]
# b = a.copy()
b =  copy.deepcopy(a)

即使用 copy.deepcopy 進(jìn)行賦值操作,這時(shí)候當(dāng)對a的內(nèi)層元素進(jìn)行操作之后,b不會跟著改變,
不過這里需要注意的是(不得不說這個設(shè)計(jì)節(jié)省內(nèi)存真的很精妙),如果不更改a和b內(nèi)部元素的值的話,那么a和b內(nèi)部元素的值他們的地址還是相同的,只有在一方更改了自身地址內(nèi)的值的時(shí)候,地址才會更改。

import copy
a = [[1,2,4],[3,5,8],[],[]]
# b = a.copy()
b =  copy.deepcopy(a)
print("打印數(shù)組地址:")
print(id(a))
print(id(b))
print("*"*40)
print("打印內(nèi)層元素地址:")
print(id(a[0]))
print(id(b[0]))
print("0"*50)
print(id(a[0][0]))
print(id(b[0][0]))
print("10"*50)
print("\n")
print(a[1][0])
print(b[1][0])
print(id(a[1][0]))
print(id(b[1][0]))
print("10"*50)
print("\n")
# print("*"*40)
# a.append(4)
a[1][0] = a[1][0] + 1
#
# print(a)
# print(b)
# print(id(a[4]))
# print("\n")
print("10"*50)
print(a[1][0])
print(b[1][0])
print(id(a[1][0]))
print(id(b[1][0]))
print("10"*50)
print("\n")
b[1][0] = b[1][0] + 2
print(id(b[1][0]))

輸出

打印數(shù)組地址:
1696261290248
1696261352200
****************************************
打印內(nèi)層元素地址:
1696257692040
1694368707272
00000000000000000000000000000000000000000000000000
140729133343136
140729133343136
1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010

3
3
140729133343200
140729133343200
1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010

1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
4
3
140729133343232
140729133343200
1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010

140729133343264

以上就是python開發(fā)中兩個list之間傳值示例的詳細(xì)內(nèi)容,更多關(guān)于python中l(wèi)ist列表兩表傳值的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python學(xué)習(xí)之基于Python的人臉識別技術(shù)學(xué)習(xí)

    python學(xué)習(xí)之基于Python的人臉識別技術(shù)學(xué)習(xí)

    面部識別技術(shù)的應(yīng)用越來越廣泛,它廣泛應(yīng)用于安全系統(tǒng)、人機(jī)交互、社交媒體、醫(yī)療保健等領(lǐng)域。本文介紹了基于Python的人臉識別技術(shù),感興趣的小伙伴可以參考閱讀
    2023-03-03
  • Python中協(xié)程用法代碼詳解

    Python中協(xié)程用法代碼詳解

    這篇文章主要介紹了Python中協(xié)程用法代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊(duì)長的盾牌、高達(dá)的源碼

    基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊(duì)長的盾牌、高達(dá)的源碼

    這篇文章主要介紹了基于Python-turtle庫繪制路飛的草帽骷髏旗、美國隊(duì)長的盾牌、高達(dá)的源碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Python函數(shù)式編程模塊functools的使用與實(shí)踐

    Python函數(shù)式編程模塊functools的使用與實(shí)踐

    本文主要介紹了Python函數(shù)式編程模塊functools的使用與實(shí)踐,教你如何使用?functools.partial、functools.wraps、functools.lru_cache?和?functools.reduce,感興趣的可以了解一下
    2024-03-03
  • 詳解基于Facecognition+Opencv快速搭建人臉識別及跟蹤應(yīng)用

    詳解基于Facecognition+Opencv快速搭建人臉識別及跟蹤應(yīng)用

    這篇文章主要介紹了詳解基于Facecognition+Opencv快速搭建人臉識別及跟蹤應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • python 音頻和視頻合并自動裁剪

    python 音頻和視頻合并自動裁剪

    本文主要介紹了python 音頻和視頻合并自動裁剪,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Flask中app.route裝飾器參數(shù)的使用

    Flask中app.route裝飾器參數(shù)的使用

    app.route()是Flask框架中用于定義路由的裝飾器函數(shù),本文主要介紹了Flask中app.route裝飾器參數(shù)的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • 詳解pytorch的多GPU訓(xùn)練的兩種方式

    詳解pytorch的多GPU訓(xùn)練的兩種方式

    本文主要介紹了詳解pytorch的多GPU訓(xùn)練的兩種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • pyqt5中動畫的使用詳解

    pyqt5中動畫的使用詳解

    這篇文章主要介紹了pyqt5中動畫的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 詳解Python如何與?java高效的交互

    詳解Python如何與?java高效的交互

    這篇文章主要為大家介紹了詳解Python如何與java高效的交互的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評論