列表中交替範圍切片(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]

更新於: 02-Jan-2020

690 人次瀏覽

啟動你的 事業

透過完成課程獲得認證

開始
廣告