列表中交替范围切片(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 人次浏览

启动你的 事业

通过完成课程获得认证

开始
广告