1. 程式人生 > >python 基礎之列表的操作和列表的相關函數

python 基礎之列表的操作和列表的相關函數

必須 相同元素 int 批量修改 沒有 增刪改查 end 情況 span

:列表的相關操作

#1.列表的拼接
list1 = [1,2]
list2 = [3,4]
listvar = list1 + list2
print(listvar)

#2.列表的重復
lst = [1,2,3]
listvar = lst * 3
print(listvar)

#3.列表的切片
語法 =>列表[::] 完整格式: [開始索引:結束索引:間隔值]
(1)[開始索引:] 從開始索引截取到列表的最後
(2)[:結束索引] 從開頭截取到結束索引之前(結束索引-1)
(3)[開始索引:結束索引] 從開始截取到結束索引之前(結束索引-1)
(4)[開始索引:結束索引:間隔值

] 從開始索引截取到結束索引之前按照指定的間隔截取列表元素值
(5)[:][::] 截取所有列表

#(1)[開始索引:] 從開頭截取到列表的最後
listvar = ["one","two","three","four","five","six","seven","eight","nine","ten"]
res = listvar[3:]
print(res)

#(2)[:結束索引] 從開頭截取到結束之前(結束索引-1)
res = listvar[:4]
print(res)

#(3)[開始索引:結束索引] 從開始索引截取到結束索引之前(結束索引-1)
res = listvar[::2]
print(res)

#(4) [開始索引:結束索引:間隔值] 從開始索引截取到結束索引之前按照指定的間隔截取列表值
res = listvar[::2]
print(res)

#輸出:[‘two‘, ‘five‘]
res = listvar[1:-4:3]
print(res)

#-1 -2 -3 -4 -5...
res = listvar[::-1]
print(res)

#(5) [:][::]
res = listvar[:]
print(res)

#4.列表的獲取 (同元組)
# 0 1 2 3 正向索引
list = ["one","two","three","four"]
# -4 -3 -2 -1 逆向索引
res = listvar[-1]
print(res)
res = listvar[2]
print(res)

#5.列表的修改 (可切片)

(1)通過索引元素修改值

listvar = ["one","two","three","four"]
listvar[1] = "five"
print(listvar)

#得到:[‘one‘, ‘five‘, ‘three‘, ‘four‘]
(2)通過切片批量修改的,修改的時候註意:如果切割出來元素比要替換的元素少,依然可以將想要增加的元素插入到列表中,並將原來位置的元素向後推

list = ["one","two","three","four"]
list[:2] = ["five","six",‘seven‘,"eight"]
print(list)

#結果為:["five","six",‘seven‘,"eight"]

#效果是onetwo ["five","six",‘seven‘,"eight"]替換,["five","six",‘seven‘,"eight"]

中的元素一個個插入,然後將three four往後推.

#在列表切片修改的時候,右側的值需要iterable(可叠代性數據=>容器類型數據 range對象 叠代器)

listvar = ["one","two","three","four"]
listvar[::2] = range(2) #range(2) 0 1 2 2取不到
print(listvar)
#效果:[0, ‘two‘, 1, ‘four‘]

#註意這個所替換的數據要和列表可替換數據對應該,比如要替換2個元素,那麽列表需要剛好滿足能替換2個元素才能成立,否則會報錯

#如下報錯的例子:

listvar = ["one","two","three","four","five"]
listvar[::2] = range(2) #range(2) 0 1 2 2取不到
print(listvar)

#ValueError: attempt to assign sequence of size 2 to extended slice of size 3


#(6) 列表的刪除 (可切片)
#1:

listvar = ["one","two","three","four"]

#使用del 關鍵字,實現刪除操作
del listvar[0]
print(listvar)

#得出結果:[‘two‘, ‘three‘, ‘four‘] one元素被刪除

‘‘‘
a = 5
print(a)
del a
print(a)
‘‘‘

#2:(刪除切割得到的元素)
listvar = ["one","two","three","four"]
del listvar[::2] #2為步長
print(listvar)

#結果為:[‘two‘, ‘four‘]

#3:

listvar = ["one","two","three","four"]
del listvar[1:3]
print(listvar)

#結果:[‘one‘, ‘four‘]

#切記註意

listvar = ["one","two","three","four"]
res = listvar[1:3]
del res #error 不能直接刪除列表中的元素,而是刪除的res的變量
#del listvar[1:3]

print(listvar)

#得到的結果:[‘one‘, ‘two‘, ‘three‘, ‘four‘] 這樣的結果就是沒有改變列表,而僅僅是刪除了res變量.

:列表的相關函數

從 (增刪改查)來進行分析:
# 1.增加的操作 append insert extend
#(1) append
功能:向列表的末尾添加新的元素
格式:列表.append()
返回值:None
註意:新添加的值在列表的末尾,該函數直接操作原有列表
#:
listvar = ["one","two","three","four"]

listvar.append("five")
print(listvar)

#結果為:[‘one‘, ‘two‘, ‘three‘, ‘four‘, ‘five‘]

#(2) insert
功能:在指定索引之前插入元素
格式:列表.insert(索引,)
返回值:None
註意:直接改變原有列表
#:
listvar = ["one","two","three","four"]
listvar.insert(1,"five")
print(listvar)

#結果是:[‘one‘, ‘five‘, ‘two‘, ‘three‘, ‘four‘] 索引為1 ,索引在原來two的位置插入一個元素,並將別的數據往後移動

#(3) extend
功能: 叠代追加所有元素
格式:列表.extend(可叠代性數據)
返回值:None
註意:至二級改變原有列表


#1:(如果是字符串一個字符當一個元素插入列表中)
listvar = ["one","two","three","four"]
listvar.extend("abc")
print(listvar)

#結果為:[‘one‘, ‘two‘, ‘three‘, ‘four‘, ‘a‘, ‘b‘, ‘c‘]

#2:(裏面是元組將元組中的元素一個個插入列表中)

listvar = ["one","two","three","four"]
listvar.extend(("five","six","seven"))
print(listvar)

#結果:[‘one‘, ‘two‘, ‘three‘, ‘four‘, ‘five‘, ‘six‘, ‘seven‘]

#必須是容器類型數據,123不是容器類型數據,所以會出錯
#listvar.extend(123) #error

#2.刪除操作 pop remove clear
#(1)pop
功能: 通過執行索引刪除元素,若沒有索引移除最後那個
格式: 列表.pop(索引)
返回值: 刪除的元素
(註意: 沒有指定索引,默認移除最後一個元素)
#1:(沒有指定索引,默認移除最後一個元素)
listvar = ["one","two","three","four"]
res = listvar.pop()
print(res) #輸出刪除的元素
print(listvar) #列表被改為

#最後一個輸出的結果是:[‘one‘, ‘two‘, ‘three‘] 原來列表的four被刪除

#2:
#如果指定索引,那麽刪除索引下標對應的那個值,如果不指定,默認刪除最後一個
listvar = ["one","two","three","four"]

res = listvar.pop(0)
print(listvar)

#結果為刪除第一個元素得:[‘two‘, ‘three‘, ‘four‘]

#(2)remove
功能:通過給予的值來刪除,如果多個相同元素,默認刪除第一個
格式:列表.remove()
返回值:
(註意:如果有索引的情況推薦使用pop,效率高於remove)

#:
listvar = ["one","two","three","four"]
res = listvar.remove("three")
print(res) #返回的結果是None
print(listvar)

#得到的結果:[‘one‘, ‘two‘, ‘four‘]



# (3) clear
功能:清空列表
格式:列表.clear()
返回值:空列表


listvar = ["one","two","three","four"]

listvar.clear()
print(listvar)

#輸出空列表

#3.改 查 可以看列表的相關操作
#其他方法
#(1) index
功能:獲取某個值在列表中的索引
格式:列表.index([,start][,end])# []表達參數可選項
返回值: 找到返回索引(找不到報錯)

listvar = ["one","two","three","four","one","two",”one1”]
res = listvar.index("one")

print(res) # 輸出0,輸出元素索引的位置
# res = listvar.index("one1212") #error 不存在報錯
res = listvar.index("one",1) #從所以1的位置開始
#listvar.find("one") 列表裏面沒有find 那是字符串的函數find
#res = listvar.index("one",4,6) error 不存在 報錯
print(res) #輸出4

#(2) count
功能:計算某個元素出現的次數
格式:列表.count()
返回值:次數

#:
listvar = ["one","two","three","four","one","two",”one1”]
res = listvar.count("one")
print(res)

#得到結果2,one出現的次數為2

#(3)sort
功能:列表排序(默認小到大排序)
格式:列表.sort(reverse=Ture)
返回值:None
註意:直接更改原列表
#1:

listvar = [99,-3,26,78]
listvar.sort()
print(listvar)
#讓列表從大到小排序 reverse = Ture
listvar.sort(reverse=True)
print(listvar)

#結果:[99, 78, 26, -3]

#2:
#如果是字母 默認按照ascii碼表 從小到大排序
listvar = ["boshi","onier","james","weide","adongni"]
listvar.sort()
print(listvar)
結果:[‘adongni‘, ‘boshi‘, ‘james‘, ‘onier‘, ‘weide‘]
#(7)reverse
功能:列表反轉操作
格式:列表.reverse()
返回值:None
註意:直接更改原列表
#:
listvar = [99,-3,26,78]
listvar.reverse()
print(listvar)

#結果:[78, 26, -3, 99]

python 基礎之列表的操作和列表的相關函數