[start:end]=切片賦值,擴展了list批量增減元素的操作能力。
(筆記模板由python腳本于2024年12月06日 15:07:56創建,本篇筆記適合研python基礎的coder翻閱)
-
Python 官網:https://www.python.org/
-
Free:大咖免費“圣經”教程《 python 完全自學教程》,不僅僅是基礎那么簡單……
地址:https://lqpybook.readthedocs.io/
??自學并不是什么神秘的東西,一個人一輩子自學的時間總是比在學校學習的時間長,沒有老師的時候總是比有老師的時候多。
????????????—— 華羅庚
- My CSDN主頁、My HOT博、My Python 學習個人備忘錄
- 好文力薦、 老齊教室

本文質量分:
本文地址: https://blog.csdn.net/m0_57158496/
CSDN質量分查詢入口:http://www.csdn.net/qc
- ◆?列表批量操作“新”方法
- 1、概述
- 1.1 list的方法
- 1.2 list的拓展批量操作
- 1.3 “塊”操作方法示例
- 2、名詞解釋
- 2.1 釋義
- 2.2 語法
- 2.3 示例
- 3、別名“塊賦值”
- 4、“批操”方法示例
- 4.1 list.appends
- 4.2 list.inserts
- 4.3 list.replace
- 4.4 list.removes
- 4.5 list.moves
- 4.6 list.selfcopy | list.copys
- 5、可以煉手的點子
- 6、結語
◆?列表批量操作“新”方法
1、概述
1.1 list的方法
dir(list)
這就是我們熟知的python中list的11個可用方法。
1.2 list的拓展批量操作
切片賦值拓展新方法
?
?? P y t h o n Python Python列表批量操作“新”方法:list.appends
、list.inserts
、list.replace
、list.removes
、list.moves
及list.selfcopy
或者list.copys
。
??以上的方法都是由[start:end] =
切片賦值,直接賦予 l i s t list list批量增減元素的批量操作能力。
1.3 “塊”操作方法示例
效果截屏圖片
python腳本代碼
#!/usr/bin/env python3# list方法,dir(list) #
methods = ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
strfmethods = '\n'.join([f"{'':>16}{index:0>2}.{'':>2}{name}" for index, name in enumerate(methods, start=1)])
print(f"\n{' list方法,dir(list) ':-^39}"f"\n{strfmethods}"f"\n{'':-^42}") a = range(2018, 2028)
b = 'abcdefghijk'def set_date(iter1, iter2) -> (list, list):''' 設置試煉數據 '''return list(iter1), list(iter2)list1, list2 = set_date(a, b)
print(f"\n{' 試驗數據 ':-^38}"f"\n{list1 = }"f"\n{list2 = }"f"\n{'':-^42}") # [0:0],起始位置list.inserts #
list1[0:0] = list('xyz')
print(f"\n\n{' [0:0],起始位置list.inserts ':-^37}"f"\nlist1[0:0] = list('xyz')\n => {list1}"f"\n{'':-^42}") # 在“1”位置list.inserts #
list1, list2 = set_date(a, b) # 重置試煉數據
list1[1:1] = list2[2:4]
print(f"\n\n{' 在“1”位置list.inserts ':-^39}"f"\nlist1[1:1] = list2[2:4]\n => {list1}"f"\n{'':-^42}") # 在超出長度的位置(即末尾)list.appends #
list1, list2 = set_date(a, b) # 重置試煉數據
n = len(list1);list1[n+1:n+1] = list2[::-1]
print(f"\n\n{' 在超出長度的位置(即末尾)list.appends ':-^29}"f"\nn = len(list1);list1[n+1:n+1] = list2[::-1]\n => {list1}"f"\n{'':-^42}") # 替換1-3的元素,相當于str.replace #
list1, list2 = set_date(a, b) # 重置試煉數據
list1[1:4] = list2[7:4:-1]
print(f"\n\n{' 替換1-3的元素,相當于str.replace ':-^33}"f"\nlist1[1:4] = list2[7:4:-1]\n => {list1}"f"\n{'':-^42}") # “塊刪”,list.removes #
list1, list2 = set_date(a, b) # 重置試煉數據
list1[5:14] = []
print(f"\n\n{' “塊刪”,list.removes ':-^39}"f"\nlist1[5:14] = []\n => {list1}"f"\n{'':-^42}")# 移動,list.moves #
list1, list2 = set_date(a, b) # 重置試煉數據
list2[9:9] = list2[2:6];list2[2:6] = []
print(f"\n\n{' “移動”,list.moves ':-^39}"f"\nlist2[9:9] = list2[2:6];list2[2:6] = []\n => {list2}"f"\n{'':-^42}") # 自我拷貝list.selfcopy #
list1, list2 = set_date(a, b) # 重置試煉數據
list1[0:0] = list1[:]
print(f"\n\n{' 自我拷貝list.selfcopy ':-^38}"f"\nlist1[0:0] = list1[:]\n => {list1}"f"\n{'':-^42}") # “塊”拷貝list.copys #
list1, list2 = set_date(a, b) # 重置試煉數據
list2[len(list2)+1:len(list2)+1] = list2[:]
print(f"\n\n{' “塊”拷貝list.copys ':-^39}"f"\nlist2[len(list2)+1:len(list2)+1] = list2[:]\n => {list2}"f"\n{'':-^42}")
2、名詞解釋
??在Python中,“切片賦值
”(Slice Assignment)是指使用切片操作來更新列表中一個連續的片段。這個過程涉及到將一個列表的某個切片(即一部分)替換為另一個具有相同或不同長度的序列。
2.1 釋義
切片賦值
:
?
??一種操作,允許在Python列表中通過指定起始和結束索引來替換一個范圍的元素。切片賦值通常用于修改列表的一部分,而不影響列表的其他元素。
2.2 語法
其語法形式如下:
list[start:stop] = iterable
- 其中:
list
是要修改的列表。start
是切片開始位置的索引(包含此位置的元素)。stop
是切片結束位置的索引(不包含此位置的元素)。iterable
是一個可迭代的對象,其元素將被用來替換列表中指定切片位置的元素。
2.3 示例
示例代碼:
my_list = [1, 2, 3, 4, 5] my_list[1:4] = [8, 9] # 將索引1到3(不包括4)的元素替換為8和9 print(my_list) # 輸出: [1, 8, 9, 5]
??在這個例子中,my_list
中的元素 [2, 3, 4]
被替換為 [8, 9]
,從而改變了列表的內容。
??切片賦值是Python列表操作中一個非常強大和靈活的特性。
3、別名“塊賦值”
??可以說“切片賦值”也可以被稱為“塊賦值”,這個稱呼同樣能夠形象地描述這種操作。這里的“塊”指的是列表中的一個連續部分,而“賦值”則是指用新的值替換這個塊。
??確實,賦的值可以是“任意”的可迭代對象,包括但不限于列表、元組、字符串等,而“塊”則必須是列表中的一個真實存在的連續片段。
這個操作的特點是:
?- “塊”的長度可以與替換它的值的長度不同。
- 如果替換值的長度大于原塊,列表的長度會增加。
- 如果替換值的長度小于原塊,列表的長度會減少,多出的元素會被刪除。
以下是一個簡單的例子來說明“塊賦值”:
my_list = [1, 2, 3, 4, 5]# 用一個較短的塊替換一個較長的塊 my_list[1:4] = [8, 9] # 結果: [1, 8, 9, 5]# 用一個較長的塊替換一個較短的塊 my_list[1:2] = [10, 11, 12] # 結果: [1, 10, 11, 12, 9, 5]# 用一個空的可迭代對象替換塊,相當于刪除這些元素 my_list[1:4] = [] # 結果: [1, 9, 5]
??在每種情況下,我們都用新的“塊”替換了列表中的原有“塊”,這就是“塊賦值”的實質。🤗🤗
4、“批操”方法示例
??“塊賦值”確實是 Python 列表操作中的一個強大功能。通過這種方式,您可以靈活地實現列表的追加(appends
)、插入(inserts
)、替換(replace
)、刪除(removes
)、移動
(moves
)以及自我復制(selfcopy
或 copys
)等操作。
以下是一些簡單的例子來說明這些操作:
4.1 list.appends
- 追加(Appends):
list0 = [1, 2, 3, 4, 5] list0[5:5] = [6, 7] # 在索引1的位置插入 [6, 7] # 結果: [1, 2, 3, 4, 5, 6, 7]
??在索引1的位置插入 [6, 7]
。
注意: 追加的位置切片一定要大于現有列表長度。如本例的[5:5]
。(只要大于當前列表長度的有效切片都可以,如[5:8]
、[9:9]
等,效果相同。但一般建議[len(list1):len(list1)]
,在最后一個元素索引后插入。)
4.2 list.inserts
- 插入(Inserts):
list0 = [1, 2, 3, 4, 5] list0[1:1] = [6, 7] # 在索引1的位置插入 [6, 7] # 結果: [1, 6, 7, 2, 3, 4, 5]
??在索引1的位置插入[6, 7]
。
4.3 list.replace
- 替換(Replace):
等長替換
list0 = [1, 2, 3, 4, 5] list0[1:3] = [6, 7] # 將索引1到2的元素替換為 [6, 7] # 結果: [1, 6, 7, 4, 5]
??將索引1到2的元素替換為[6, 7]
。
不等長替換1
列表變長
list0 = [1, 2, 3, 4, 5]
list0[1:3] = [6, 7, 8, 9] # 將索引1到2的元素替換為 [6, 7]
# 結果: [1, 6, 7, 8, 9, 4, 5]
??將索引1到2的元素替換為 [6, 7]
等長替換2
列表減短
list0 = [1, 2, 3, 4, 5]
list0[1:3] = [6,] # 將索引1到2的元素替換為 [6, 7]
# 結果: [1, 6, 4, 5]
??將索引1到2的元素替換為[6, 7]
。
4.4 list.removes
- 刪除(Removes):
del方法實現
list0 = [1, 2, 3, 4, 5] del list0[1:3] # 刪除索引1到2的元素 # 結果: [1, 4, 5]
??刪除索引1到2的元素。
“切片賦值”實現
list0 = [1, 2, 3, 4, 5] list0[1:3] = [] # 將索引1到2的元素替換為空[] # 結果: [1, 4, 5]
??將索引1到2的元素替換為空[]
。
4.5 list.moves
- 移動(Moves):
互換
list0 = [1, 2, 3, 4, 5] list0[1:3], list0[3:5] = list0[3:5], list0[1:3] # 交換索引1到2和3到4的元素 # 結果: [1, 4, 5, 2, 3]
??交換索引1到2和3到4的元素區間。
移動
list0 = [1, 2, 3, 4, 5] list0[1:3] = list0[4:4]; list0[1:3] = [] # 先移動索引1到2“塊”cv到4元素的前面,再置空[]cv過的“塊” # 結果: [1, 4, 2, 3, 5]
??
先移動索引1到2“塊”cv到4元素的前面,再置空[]cv過的“塊”。
4.6 list.selfcopy | list.copys
- 自我復制(Selfcopy 或 Copys):
list0 = [1, 2, 3, 4, 5] list0[0:0] = list0[:] # 在列表開頭插入整個列表的副本 # 結果: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
??在列表開頭插入整個列表的副本。
- 或者,
?list0 = [1, 2, 3, 4, 5] list0[len(list0):len(list0)] = list0[:] # 在列表開頭插入整個列表的副本 # 結果: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
??在列表尾插入整個列表的副本。
??這些操作展示了 Python 列表操作的靈活性和強大功能。我們可以通過這些基本操作組合出更多復雜的操作,以實現您想要的效果。繼續探索和實驗,Python 總會帶給你驚喜!😎😎😎
5、可以煉手的點子
下面是我ai學伴提出的list煉手點子
-
list.compress (start_index, end_index, step): 對列表中從起始索引到結束索引的部分,按照指定的步長進行壓縮,只保留步長對應位置的元素。
-
list.expand_segment (start_index, end_index, value): 在列表中從起始索引到結束索引的部分,每隔一個元素插入指定的值。
-
list.partition_by (predicate): 根據給定的斷言函數,將列表分割成多個子列表,每個子列表的元素都滿足或不滿足斷言。
-
list.sort_segment (start_index, end_index, key=None, reverse=False): 對列表中從起始索引到結束索引的部分進行排序。
-
list.deduplicate(): 刪除列表中的重復元素,保持元素的順序。
-
list.flatten(): 將嵌套列表展平成一維列表。
-
list.zip_with (other_list, func): 將當前列表與另一個列表的元素通過指定的函數組合起來。
-
list.reverse_segment (start_index, end_index): 反轉列表中從起始索引到結束索引的部分。
-
list.rotate_left(n): 將列表向左旋轉 n 個位置。
-
list.rotate_right(n): 將列表向右旋轉 n 個位置。
-
list.shuffle_segment(start_index, end_index): 隨機打亂列表中從起始索引到結束索引的部分。
-
list.swap_segments(index1, index2, length): 交換列表中兩個不同位置的長度相同的片段。
-
6、結語
??在任何世界,只要細心/沉浸,都可以有意想不到的驚喜!
?
??這看似偶然,實則必然。是上蒼對您認真的饋贈。
?
??生活,如此。編程,依然。
?
??努力踐行了,終將收獲。💪💪💪
上一篇:? 全能單行url解碼器(超高濃縮“復雜”邏輯lambda,體格雖小功用不減正常形態書寫代碼)
下一篇:?
我的HOT博:
??本次共計收集404篇博文筆記信息,總閱讀量61.76w。數據采集于2024年11月25日 08:23:38,用時7分56.4秒。閱讀量不小于6.00k的有 9 9 9篇。
- 讓QQ群昵稱色變的神奇代碼
地址:https://blog.csdn.net/m0_57158496/article/details/122566500
瀏覽閱讀:6.2w
點贊:25?收藏:89?評論:17
(本篇筆記于2022-01-18 19:15:08首次發布,最后修改于2022-01-20 07:56:47)
? - Python列表(list)反序(降序)的7種實現方式
地址:https://blog.csdn.net/m0_57158496/article/details/128271700
瀏覽閱讀:1.3w
點贊:9?收藏:40?評論:8
(本篇筆記于2022-12-11 23:54:15首次發布,最后修改于2023-03-20 18:13:55)
? - pandas 數據類型之 DataFrame
地址:https://blog.csdn.net/m0_57158496/article/details/124525814
瀏覽閱讀:1.0w
點贊:7?收藏:40?
(本篇筆記于2022-05-01 13:20:17首次發布,最后修改于2022-05-08 08:46:13)
? - 個人信息提取(字符串)
地址:https://blog.csdn.net/m0_57158496/article/details/124244618
瀏覽閱讀:1.0w
點贊:3?收藏:20?
(本篇筆記于2022-04-18 11:07:12首次發布,最后修改于2022-04-20 13:17:54)
? - 羅馬數字轉換器|羅馬數字生成器
地址:https://blog.csdn.net/m0_57158496/article/details/122592047
瀏覽閱讀:8.2k
收藏:3?
(本篇筆記于2022-01-19 23:26:42首次發布,最后修改于2022-01-21 18:37:46)
? - 統計字符串字符出現的次數
地址:https://blog.csdn.net/m0_57158496/article/details/130517025
瀏覽閱讀:8.1k
點贊:5?收藏:24?
(本篇筆記于2023-05-06 22:28:18首次發布,最后修改于2023-05-12 06:21:40)
? - Python字符串居中顯示
地址:https://blog.csdn.net/m0_57158496/article/details/122163023
瀏覽閱讀:8.0k
點贊:1?收藏:12?評論:1
? - 回車符、換行符和回車換行符
地址:https://blog.csdn.net/m0_57158496/article/details/123109488
瀏覽閱讀:6.7k
點贊:2?收藏:4?
(本篇筆記于2022-02-24 13:10:02首次發布,最后修改于2022-02-25 20:07:40)
? - python清屏
地址:https://blog.csdn.net/m0_57158496/article/details/120762101
瀏覽閱讀:6.1k
點贊:1?收藏:10?
?
截屏圖片
??(此文涉及ChatPT,曾被csdn多次下架,前幾日又因新發筆記被誤殺而落馬。躺“未過審”還不如回收站,回收站還不如永久不見。😪值此年底清掃,果斷移除。留此截圖,以識“曾經”。2023-12-31)

精品文章:
- 好文力薦:齊偉書稿 《python 完全自學教程》 Free連載(已完稿并集結成書,還有PDF版本百度網盤永久分享,點擊跳轉免費🆓下載。)
- OPP三大特性:封裝中的property
- 通過內置對象理解python'
- 正則表達式
- python中“*”的作用
- Python 完全自學手冊
- 海象運算符
- Python中的 `!=`與`is not`不同
- 學習編程的正確方法
來源:老齊教室
◆ Python 入門指南【Python 3.6.3】
好文力薦:
- 全棧領域優質創作者——[寒佬](還是國內某高校學生)博文“非技術文—關于英語和如何正確的提問”,“英語”和“會提問”是編程學習的兩大利器。
- 【8大編程語言的適用領域】先別著急選語言學編程,先看它們能干嘛
- 靠譜程序員的好習慣
- 大佬帥地的優質好文“函數功能、結束條件、函數等價式”三大要素讓您認清遞歸
CSDN實用技巧博文:
- 8個好用到爆的Python實用技巧
- python忽略警告
- Python代碼編寫規范
- Python的docstring規范(說明文檔的規范寫法)