python迭代器 Python中l(wèi)ist賦值時(shí),L1=L與L1=L[:] 有什么區(qū)別?
Python中l(wèi)ist賦值時(shí),L1=L與L1=L[:] 有什么區(qū)別?首先清楚,Python對(duì)象的三要素——Id,Type,Value。Id:唯一標(biāo)識(shí)一個(gè)對(duì)象Type:標(biāo)識(shí)對(duì)象的類型Value:對(duì)象的值
Python中l(wèi)ist賦值時(shí),L1=L與L1=L[:] 有什么區(qū)別?
首先清楚,Python對(duì)象的三要素——Id,Type,Value。
Id:唯一標(biāo)識(shí)一個(gè)對(duì)象
Type:標(biāo)識(shí)對(duì)象的類型
Value:對(duì)象的值
然后,看下面代碼樣例:
執(zhí)行結(jié)果:
發(fā)現(xiàn)l與l1實(shí)際是指向同一個(gè)對(duì)象,l2指向了新的對(duì)象(切片生成的新對(duì)象)。
同時(shí)需要二外注意,l1和l2是否相等呢?
l1 is l2 判斷 l1 對(duì)象是否就是l2對(duì)象(通過id來判斷)
l1 == l2 判斷 l1 對(duì)象的值是否和 l2 對(duì)象的值相等(通過value來判斷)
Python如何初始化列表?
在 Python中,假如我們預(yù)先知道列表的長(zhǎng)度,若預(yù)先初始化該長(zhǎng)度的列表,然后對(duì)每一個(gè)賦值,會(huì)比每次使用 list.append() 的效率更高。接下來介紹兩種初始化列表的方式:
使用運(yùn)算符初始化列表元素和長(zhǎng)度
使用序列初始化列表元素和長(zhǎng)度
如果想過濾掉序列中不需要的元素,可以用列表推導(dǎo)式,如下