卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

python腳本輸入可變參數(shù) 有哪些用Python語(yǔ)言講算法和數(shù)據(jù)結(jié)構(gòu)的書?

有哪些用Python語(yǔ)言講算法和數(shù)據(jù)結(jié)構(gòu)的書?Python通用數(shù)據(jù)結(jié)構(gòu)全白原理Python中常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)可以統(tǒng)稱為du作為一個(gè)容器。有序的zhi列(比如dao列表和元組)、映射(比如字典)和集合是三

有哪些用Python語(yǔ)言講算法和數(shù)據(jù)結(jié)構(gòu)的書?

Python通用數(shù)據(jù)結(jié)構(gòu)全白原理

Python中常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)可以統(tǒng)稱為du作為一個(gè)容器。有序的zhi列(比如dao列表和元組)、映射(比如字典)和集合是三種主要的容器類型。

I .序列(列表、元組和字符串)

序列中的每個(gè)元素都有自己的編號(hào)。Python中有六個(gè)內(nèi)置序列。列表和元組是最常見(jiàn)的類型。其他包括字符串、Unicode字符串、緩沖區(qū)對(duì)象和xrange對(duì)象。下面重點(diǎn)介紹以下列表、元組和字符串。

1.目錄

列表是可變的,這是它區(qū)別于字符串和元組的最重要的特征??傊?,列表可以被修改,但是字符串和元組可以。;t.

(1)、創(chuàng)建

您可以通過(guò)以下創(chuàng)建列表:

一個(gè)

2

列表1[你好,世界]

打印列表1

列表2[1,2,3]

打印列表2

輸出:

[你好,世界]

[1, 2, 3]

如您所見(jiàn),該方法與javascript中的數(shù)組非常相似。

(2)列表功能

list函數(shù)(事實(shí)上,list是一種類型而不是函數(shù))對(duì)于創(chuàng)建字符串列表非常有效:

一個(gè)

2

列表3列表(你好)

打印列表3

輸出:

[h,

Python中賦值,淺拷貝,深拷貝都是什么意思?

和很多語(yǔ)言一樣,Python可以分為簡(jiǎn)單賦值、淺層復(fù)制和深層復(fù)制。

在學(xué)習(xí)的過(guò)程中,對(duì)淺抄的理解一開(kāi)始是非常模糊的。但是,經(jīng)過(guò)一系列的實(shí)驗(yàn),我發(fā)現(xiàn)我對(duì)這三個(gè)概念有了更好的理解。

一.轉(zhuǎn)讓

賦值是這三種操作中最常見(jiàn)的。讓 讓我們通過(guò)一些例子來(lái)分析賦值操作:

Str案例

代碼如下:: gtgt gt A hellogtgt B hellogtgt C AGT gtt[ID(x)for x in A,B,c] [4404120000,4404120000,4404120000]從上面的指令中,我們可以發(fā)現(xiàn)A,B,C的地址是相同的。所以上面的賦值操作相當(dāng)于c a b hello。

賦值是指系統(tǒng)先給一個(gè)變量或?qū)ο蠓峙鋬?nèi)存(你好這里),然后再給A、B、c分配地址。。所以他們的地址是一樣的。

列表示例

代碼如下::,gtgt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt,gt [ID (x) for x in a,b,c] [403975952,40 Why?

因?yàn)閟tr是不可變的,h: gtgt gt A world gtgtgt[ID(x)for x in A,B,c] [4404120432,4404120000,4404120000] gtgt print a,B,c world hello hello此時(shí),A的地址和值發(fā)生了變化,但B,C的地址和值沒(méi)有變化。由于str的不變性,A需要重新打開(kāi)內(nèi)存空間重新賦值,所以A的值發(fā)生變化,A指向的地址也發(fā)生變化。b和C不會(huì)因?yàn)閔: gtgt gt a[0]world gtgtgt[ID(x)for x in a,b,c] [4403975952,4404095096,4403975952] gtgt print a,b,c [world] [world]。由于list的可變性,修改list的值不需要再開(kāi)辟一個(gè)空間,只需要修改原地址的值即可。所以a和c都變了。

了解了以上的區(qū)別,就可以很好的分析淺抄和深抄了。

我們都用list做例子。

第二,淺層復(fù)制

代碼如下:: gtgt gt A[你好,[123,234]]gtgt gt B A[:]gtgt t[ID(x)for x in A,b] [4496003656,4496066752]gtgt gt[ID(x)for x in A][4496091584,4495947536]gtgt gt[ID(x)for x in B][449606067536列表是可變的,所以要開(kāi)辟不同的空間。淺抄是抄嗎?看第5行-

8.我們發(fā)現(xiàn)A和B中元素的地址是相同的。說(shuō)字符串的h: gtgt gt a[0]worldgtgtgt a[1]。附加(345) gtgt gt打印a,a,

在,b,ba [world,[123,234,345]] b [h: gtgt from copy import deepcopygtgt A[hello,[123,234]]gtgt B deepcopy(A)gtgt[ID(x)for x in A,b] [4496066824,4496066680]gtgt gt[ID(x)for x in A][4496091584,4496067040]gtgt gt[ID(x)for x in B][這是一個(gè)完整的副本。

修改a的值后:

復(fù)制代碼如下:: gtgt gt a[0]worldgtgtgt a[1]。附加(345) gtgt gt打印a,a,

,B,ba [world,[123,234,345]] b [hello,[123,234]]從第4,5行可以發(fā)現(xiàn),只修改了A,B根本沒(méi)有修改。因?yàn)锽是完整的副本,所以元素地址都和A不一樣,如果A被修改,B不會(huì)受到影響。

總結(jié):

1.賦值就是把一個(gè)對(duì)象的地址賦給一個(gè)變量,讓變量指向地址(舊瓶裝新酒)。

2.淺拷貝是在另一個(gè)地址創(chuàng)建一個(gè)新的變量或容器,但容器中元素的地址都是源對(duì)象元素地址的拷貝。即據(jù)說(shuō)新容器指向舊元素(新瓶裝舊酒)。

3.深度拷貝是在另一個(gè)地址創(chuàng)建一個(gè)新的變量或容器,同時(shí)容器中元素的地址也是新打開(kāi)的,只是值相同,這是一個(gè)完整的拷貝。也就是說(shuō)(新瓶裝新酒)。