列表中交替範圍切片(Python)
切片是一種非常普遍的技術,用於分析 Python 提供的列表中的資料。但為了進行分析,有時我們需要根據一定範圍的值建立列表的切片。例如,我們需要透過跳過列表中的每 4 個元素來列印 4 個元素。在本文中,我們將看到 Python 中的這種範圍切片概念。
使用 range() 和 len()
我們建立了一個 for 迴圈來遍歷列表的整個長度,但只選擇滿足可整除性測試的元素。在可整除性測試中,我們檢查列表中第 k 個元素的餘數的值。如果餘數大於或等於範圍值,則我們接收該元素,否則不接收。
示例
range_slicing = [6,9,11,15,20,24,29,36,39,43,47,52,56,70,73,79] print("The given list: ",range_slicing) # Range Value s = 4 # Using range and len result = [range_slicing[k] for k in range(len(range_slicing)) if k % (s * 2) >= s] print("\nThe list after range slicing: ",result)
執行上述程式碼得到以下結果
The given list: [6, 9, 11, 15, 20, 24, 29, 36, 39, 43, 47, 52, 56, 70, 73, 79] The list after range slicing: [20, 24, 29, 36, 56, 70, 73, 79]
使用列舉
我們應用與先前方法相同的邏輯,但不是使用 range() 和 len(),而是簡單地應用 enumerate()。請注意列表中的最後一個元素出現在結果中,因為它滿足可被整除條件。
示例
range_slicing = [6,9,11,15,20,24,29,36,39,43,47,52,56,70,73,79] print("The given list: ",range_slicing) # Range value s2= 5 # Using Enumerate result_2 = [val for m, val in enumerate(range_slicing) if m % (s2 * 2) >= s2] print("\nThe list after range slicing: ",result_2)
執行上述程式碼得到以下結果
The given list: [6, 9, 11, 15, 20, 24, 29, 36, 39, 43, 47, 52, 56, 70, 73, 79] The list after range slicing: [24, 29, 36, 39, 43, 79]
廣告