列表中的替代范围切片(Python)
pythonserver side programmingprogramming
切片是一种非常常见的技术,用于分析 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) # 范围值 s = 4 # 使用范围和长度 result = [range_slicing[k] for k in range(len(range_slicing)) if k % (s * 2) >= s] print("\n范围切片后的列表:",result)
运行上述代码得到以下结果:
给定列表: [6, 9, 11, 15, 20, 24, 29, 36, 39, 43, 47, 52, 56, 70, 73, 79] 范围切片后的列表:[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) # 范围值 s2= 5 # 使用枚举 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]