1. 程式人生 > 實用技巧 >列表的相關操作和方法/深淺拷貝

列表的相關操作和方法/深淺拷貝

一.列表的相關操作

1. 列表的拼接 (同元組)

lst1 = ["樑新宇","孟凡偉"]
lst2 = ["孫介面","王永捐"]
res = lst1 + lst2
print(res)

2. 列表的重複 (同元組)

lst1 = ["樑新宇","孟凡偉"]
res = lst1 * 3
print(res)

3. 列表的切片 (同元組)

lst = ["曹培顯","歡慶","劉玉波","耿擇時","家營和","黃常見","劉靈鎮","孫翔宇"]

1.[開始索引:] 從開始索引擷取到列表的最後

res = lst[2:]
print(res)

2. [:結束索引] 從開頭擷取到結束索引之前(結束索引-1)

res = lst[:7]
print(res)

3. [開始索引:結束索引] 從開始索引擷取到結束索引之前(結束索引-1)

res = lst[3:5]
print(res)

4. [開始索引:結束索引:間隔值] 從開始索引擷取到結束索引之前按照指定的間隔擷取列表元素值

# 0 3 6 9 12 ... 曹培顯 耿擇時 劉靈鎮
# 從左到右 正向擷取
res = lst[::3] 
print(res)

# 從右向左 逆向擷取
res = lst[::-1]
print(res)

[:]或[::] 擷取所有列表

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

# 1.一次修改一個
lst[1] = "
菲菲" print(lst) # 2.一次修改多個 等號右邊的資料必須是Iterable(容器型別資料 range物件 迭代器) lst[2:5] = [1,2,3,4,5,6] lst[2:5] = "abc" lst[2:5] = range(100,104) print(lst) # 3.一次修改多個(帶步長) 擷取幾個,修改幾個 # ['曹培顯', 102, 6] lst[::4] = [500,600,700] print(lst)

6. 列表的刪除 ( 可切片 )

lst = ["曹培顯","歡慶","劉玉波","耿擇時","家營和","黃常見","劉靈鎮","孫翔宇"]
# 1.一次刪除一個
#
del lst[0] # print(lst) # 2.一次刪除多個 # del lst[1:5] # del lst[::5] # print(lst) # 3.注意點 (改寫法刪除的是res變數,不是列表) res = lst[::5] del res print(lst)

二. 列表相關方法

# append 向列表的末尾新增新的元素

lst.append("何子豪")
print(lst)

# insert 在指定索引之前插入元素

lst = ['李雅琪', '何子豪']
lst.insert(0,"於盛林")
print(lst)

# extend 迭代追加所有元素

""" 必須是Iterable這樣的可迭代性資料 """
tup = ("王雨涵","趙瀋陽")
lst.extend(tup)
print(lst)

# 1.pop 通過指定索引刪除元素,若沒有索引移除最後那個 (推薦)

lst = ['於盛林', '李雅琪', '何子豪', '王雨涵', '趙瀋陽',"王雨涵"]
# 預設刪掉最後一個
res = lst.pop()
# 可以指定刪除
res = lst.pop(2)
print(res)
print(lst)

# 2.remove 通過給予的值來刪除,如果多個相同元素,預設刪除第一個

lst = ['於盛林', '李雅琪', '何子豪', '王雨涵', '趙瀋陽',"王雨涵"]
lst.remove("王雨涵")
print(lst)

# 3.clear 清空列表

lst.clear()
print(lst)

其他操作

# index 獲取某個值在列表中的索引

lst = ['於盛林', '李雅琪', '何子豪', '王雨涵', '趙瀋陽',"王雨涵"]
res = lst.index("王雨涵")

# count 計算某個元素出現的次數

"""無法像字串中的count那樣寫開始和結束索引."""
lst = ['於盛林', '李雅琪', '何子豪', '王雨涵', '趙瀋陽',"王雨涵"]
res = lst.count("王雨涵")
print(res)

# sort() 列表排序 (基於原有列表進行修改)

"""預設:從小到大排序"""
lst = [1,2,100,-3,-4]
lst.sort()

"""從大到小排序"""
lst.sort(reverse=True)
print(lst)

# 針對於字母
"""ascii 編碼進行排序 大小寫字母ascii相差32"""
"""按照ascii編碼的大小,一位一位的進行比較,預設從小到大"""
lst = ["yingmuhuadao","liuchuanfeng","caixukun","caibu","sandingshou"]
lst.sort()
print(lst)


# 針對於中文 (能排序,無規律可循)
lst = ["王文","王源"]
lst.sort()
print(lst)

# reverse 列表反轉操作

lst = ["yingmuhuadao","liuchuanfeng","caixukun","caibu","sandingshou"]
lst.reverse()
print(lst)