python列表对象相同_Python中的学习列表对象,List
List(列表) 是 Python 中使用最頻繁的數據類型。
列表可以完成大多數集合類的數據結構實現。列表中元素的類型可以不相同,它支持數字,字符串甚至可以包含列表(所謂嵌套)。
列表是寫在方括號 [ ] 之間、用逗號分隔開的元素列表。
和字符串一樣,列表同樣可以被索引和截取,列表被截取后返回一個包含所需元素的新列表。
列表(list)作為 Python 中最常用的數據類型之一,是一個可增加、刪除元素的可變容器。
創建List
list1 = [] # 創建空的list
list2 = [1,'這是list集合',29.5,'121212']
list3 = [2,'abc',[1,2,3]]
基本操作
求 List 內元素的個數
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 默認增加到 列表尾部。
在指定位置插入元素
list2.insert(2,[2,2,2,2])
print(list2);
在 list2 列表的索引為 2 的地方,插入一個另一個列表元素。
移除列表尾部元素
temp = list2.pop()
print(temp)
pop 方法返回的是 移除的那個元素本身。
移除指定元素
list2.remove('121212')
print(list2)
pop 只能移除列表尾部元素,要想移除其他元素,可以使用remove 方法。
深、淺拷貝
淺拷貝
首先定義有個列表,拿出其中的列表元素。
list1 = ['001','2019-11-11',['薇恩','烏茲']]
list2 = list1[2]
然后對 list2 進行修改,打印列表1 和列表2的值。
list2[1] = 'UZI'
print(list1)
print(list2)
發現 list1 中的元素也對應改變了,因為 list2 引用 list1 的第三個元素,所以 list1 也會相應改變。
如果不想改變 list1 的第三個元素,就需要復制出 list1 的這個元素:
list1 = ['001','2019-11-11',['薇恩','烏茲']]
list2_deep = list1[2].copy()
list2_deep[1] = 'UZI'
print(list1)
print(list2_deep)
此時,再對 list2_deep 操作,便不會影響 list1[2] 的值。
注意:
copy 函數,僅僅實現對內嵌對象的一層拷貝,屬于 shallow copy(淺拷貝)
深拷貝
先看下面的代碼
list = [1,2,[3,4,5]]
new_list = list.copy()
new_list[0] = 10
new_list[2][1] = 40
修改后,分別測試兩個值的相等性。
print(list[0] == new_list[0]) // False
print(list[2][1] == new_list[2][1]) // True
第一個輸出 False,證明實現了拷貝。
第二個輸出 True,證明是淺拷貝,不是深拷貝。copy 只完成了一層 copy。
要想實現深拷貝,需要使用 copy 模塊的 deepcopy 函數:
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
打印結果,都為 False,證明內嵌的 List 列表也完成了復制。
切片
Java 和 C++ 中,訪問數組中的元素只能一次一個,但 Python 增加切片功能為訪問列表帶來極大便利。利用內置函數 range(start,stop,step) 生成序列數據,并轉為 List 類型。
a = list(range(1,20,3))
print(a)
# 輸出結果:
[1, 4, 7, 10, 13, 16, 19]
a[:3] 獲取列表 a 的前三個元素,返回: [1, 4, 7]
a[-1] 獲取 a 的最后一個元素,返回: 19
a[:-1] 獲取除最后一個元素的切片,返回: [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]
逆向:從列表最后一個元素訪問到第一個元素的方向。
逆向列表:
首先定義函數
def reverse(list):
return list[::-1]
調用函數
ra = reverse(a)
print(ra)
# 輸出結果
[19, 16, 13, 10, 7, 4, 1]
總結
以上是生活随笔為你收集整理的python列表对象相同_Python中的学习列表对象,List的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql倍增表的内容_MySQL入门(
- 下一篇: python怎么处理文字_使用pytho