- 定義
- 列表(list):一組有順序的數(shù)據(jù)的集合(用中括號包裹)。
- 元組tuple是一種特殊的列表,不能修改,具有l(wèi)ist除了修改的所有操作(用圓括號括著)。這里的不可修改是指那一份數(shù)據(jù)不可修改,兩個tuple連接給一個新的tuple這類本質(zhì)是創(chuàng)建的操作是允許的。但是內(nèi)容修改會違法。
- 創(chuàng)建及分片
- 分片操作會產(chǎn)生一個新的list,而不是共同管理變量的關(guān)系。(相當(dāng)于深度拷貝)
# 空列表
l1 = []
# 有初值的列表(可放入若干個各種類型的數(shù)據(jù))
l2 = [1, 2, 3, "lk"]
# 類似構(gòu)造的創(chuàng)建方法
l3 = list()# 列表的訪問,按照下標(biāo)索引(編程語言編號幾乎都是從零開始) 下標(biāo)索引不能越界
print(l2[0])# 列表的分片操作 l[開始位置:結(jié)束位置(達(dá)不到):步長(默認(rèn)為1)] 分片操作的位置可以越界,但超出的不會考慮
l = [1, 2, 3, 4, 5, 6]
# 位置值可以一個或者兩個為空,系統(tǒng)給默認(rèn)值開始位置和結(jié)束位置+1
print(l[:])
print(l[0:4:2])
print(l[-2:-4])
print(l[-2:-4:-1])#改變方向從右往左
?
? ?
?
l = [1, 2, 3, 4, 5]
l1 = l
l2 = l[:]
print(id(l))
print(id(l1))
print(id(l2))
list1 = [1, 2, 3, 4, 5]
print(list1)
print(id(list1))
del(list1[0])
# 或者使用list1.pop(0)
print(list1)
print(id(list1))
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8]
list3 =list1+list2
print(list3)
list4 = list1*3
print(list4)
print(1 in list1)
print(10 in list1)
list1 = [1, 2, 3, 4, 5]
list2 = [["a", 1], ["b", 2]]
for item in list1:print(item,end=" ")
print()
# 字典的遍歷方法,局限性高
for k,v in list2:print(k, ",", v)
list1 = [1, 2, 3, 4, 5]
list2 = [item for item in list1]
print(list2)
list3 = [item*10 for item in list1]
print(list3)
list4 = [item for item in list1 if item % 2 == 0]
print(list4)
str1 = "13579"
list5 = [int(item) for item in str1]
print(list5)
- 列表常用的內(nèi)置函數(shù)(可自行查看說明文檔)
list1 = [1, 2, 3, 4, 5]
# 列表長度也就是元素個數(shù)
print(len(list1))
# 求最大值
print(max(list1))
# 求最小值
print(min(list1))
# 求和
print(sum(list1))
# 轉(zhuǎn)換為list
str1 = "i study python"
print(list(str1))
print(list(str1.split(" ")))
#查找列表指定值的個數(shù)
print(lis1.count(1))
list1 = [1, 2, 3, 4, 5]
list1.append(6)
print(list1)
list1 = [1, 2, 3, 4, 5]
list1.insert(0,0)
print(list1)
?
- 列表內(nèi)容刪除
- del刪除見前
- pop彈出最后一個元素,并返回
- remove刪除列表中某個值
- clear清空列表所以元素,但內(nèi)存仍在(java List類似)
list1 = [1, 2, 3, 4, 5]
print(list1.pop())
print(list1)
list1 = [1, 2, 3, 4, 5,"m"]
list1.remove("m")
print(list1)
list1 = [1, 2, 3, 4, 5]
list1.clear()
?
- 數(shù)據(jù)變換
- reverse所有數(shù)據(jù)倒序重存
- extend后面加上一個列表
list1 = [1, 2, 3, 4, 5]
list1.reverse()
list1 = [1, 2, 3, 4, 5]
list2 = [4,3,2,1]
list1.extend(list2)
?
# python中賦值表示共同管理一份數(shù)據(jù)
list1 = [1, 2, 3, 4, 5]
list2 = list1
list2.pop()
print(list2)
print(list1)
# 拷貝則是把值拿過來重新分配內(nèi)存
list1 = [1, 2, 3, 4, 5]
list2 = list1.copy()
list2.pop()
print(list2)
print(list1)
- 深拷貝和淺拷貝區(qū)別(淺拷貝只拷貝一層內(nèi)容)
#淺拷貝表現(xiàn)
list1 = [1, 2, 3, 4, 5, [20, 30]]
list2 = list1.copy()
print(id(list1))
print(id(list2))
print(id(list1[5]))
print(id(list2[5]))
list1[5][0] = 40
print(list1)
print(list2)
?
總結(jié)
以上是生活随笔為你收集整理的python基础语法-三大内建数据结构之列表(list)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。