日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python列表对象相同_Python中的学习列表对象,List

發(fā)布時(shí)間:2024/9/27 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python列表对象相同_Python中的学习列表对象,List 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型。

列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。列表中元素的類型可以不相同,它支持?jǐn)?shù)字,字符串甚至可以包含列表(所謂嵌套)。

列表是寫在方括號 [ ] 之間、用逗號分隔開的元素列表。

和字符串一樣,列表同樣可以被索引和截取,列表被截取后返回一個(gè)包含所需元素的新列表。

列表(list)作為 Python 中最常用的數(shù)據(jù)類型之一,是一個(gè)可增加、刪除元素的可變?nèi)萜鳌?/p>

創(chuàng)建List

list1 = [] # 創(chuàng)建空的list

list2 = [1,'這是list集合',29.5,'121212']

list3 = [2,'abc',[1,2,3]]

基本操作

求 List 內(nèi)元素的個(gè)數(shù)

len(list1) # 0

len(list2) # 4

len(list3) # 3

遍歷 List 列表

for _ in list3:

print(f'{_}的類型為{type(_)}')

取出元素

print(list2[1])

增加元素

list3.append([2,4,6])

print(list3)

append 默認(rèn)增加到 列表尾部。

在指定位置插入元素

list2.insert(2,[2,2,2,2])

print(list2);

在 list2 列表的索引為 2 的地方,插入一個(gè)另一個(gè)列表元素。

移除列表尾部元素

temp = list2.pop()

print(temp)

pop 方法返回的是 移除的那個(gè)元素本身。

移除指定元素

list2.remove('121212')

print(list2)

pop 只能移除列表尾部元素,要想移除其他元素,可以使用remove 方法。

深、淺拷貝

淺拷貝

首先定義有個(gè)列表,拿出其中的列表元素。

list1 = ['001','2019-11-11',['薇恩','烏茲']]

list2 = list1[2]

然后對 list2 進(jìn)行修改,打印列表1 和列表2的值。

list2[1] = 'UZI'

print(list1)

print(list2)

發(fā)現(xiàn) list1 中的元素也對應(yīng)改變了,因?yàn)?list2 引用 list1 的第三個(gè)元素,所以 list1 也會(huì)相應(yīng)改變。

如果不想改變 list1 的第三個(gè)元素,就需要復(fù)制出 list1 的這個(gè)元素:

list1 = ['001','2019-11-11',['薇恩','烏茲']]

list2_deep = list1[2].copy()

list2_deep[1] = 'UZI'

print(list1)

print(list2_deep)

此時(shí),再對 list2_deep 操作,便不會(huì)影響 list1[2] 的值。

注意:

copy 函數(shù),僅僅實(shí)現(xiàn)對內(nèi)嵌對象的一層拷貝,屬于 shallow copy(淺拷貝)

深拷貝

先看下面的代碼

list = [1,2,[3,4,5]]

new_list = list.copy()

new_list[0] = 10

new_list[2][1] = 40

修改后,分別測試兩個(gè)值的相等性。

print(list[0] == new_list[0]) // False

print(list[2][1] == new_list[2][1]) // True

第一個(gè)輸出 False,證明實(shí)現(xiàn)了拷貝。

第二個(gè)輸出 True,證明是淺拷貝,不是深拷貝。copy 只完成了一層 copy。

要想實(shí)現(xiàn)深拷貝,需要使用 copy 模塊的 deepcopy 函數(shù):

from copy import deepcopy

list = [1,2,[3,4,5]]

new_list = deepcopy(list)

new_list[0] = 10

new_list[2][1] = 40

print(list[0] == new_list[0]) // False

print(list[2][1] == new_list[2][1]) // False

打印結(jié)果,都為 False,證明內(nèi)嵌的 List 列表也完成了復(fù)制。

切片

Java 和 C++ 中,訪問數(shù)組中的元素只能一次一個(gè),但 Python 增加切片功能為訪問列表帶來極大便利。利用內(nèi)置函數(shù) range(start,stop,step) 生成序列數(shù)據(jù),并轉(zhuǎn)為 List 類型。

a = list(range(1,20,3))

print(a)

# 輸出結(jié)果:

[1, 4, 7, 10, 13, 16, 19]

a[:3] 獲取列表 a 的前三個(gè)元素,返回: [1, 4, 7]

a[-1] 獲取 a 的最后一個(gè)元素,返回: 19

a[:-1] 獲取除最后一個(gè)元素的切片,返回: [1, 4, 7, 10, 13, 16]

a[1:5] 生成索引為 [1,5)(不包括索引 5),返回: [4, 7, 10, 13]

a[1:5:2] 生成索引 [1,5) ,步長為 2,返回: [4, 10]

a[::3] 生成索引 [0,len(a)) 步長為 3,返回: [1, 10, 19]

a[::-3] 生成逆向索引 [len(a),0) 步長為 3,返回: [19, 10, 1]

逆向:從列表最后一個(gè)元素訪問到第一個(gè)元素的方向。

逆向列表:

首先定義函數(shù)

def reverse(list):

return list[::-1]

調(diào)用函數(shù)

ra = reverse(a)

print(ra)

# 輸出結(jié)果

[19, 16, 13, 10, 7, 4, 1]

總結(jié)

以上是生活随笔為你收集整理的python列表对象相同_Python中的学习列表对象,List的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。