2024-06-12 05:57:07 发布
网友
我在寻找分块列表中的最大绝对值。在
例如,列表是:
[1, 2, 4, 5, 4, 5, 6, 7, 2, 6, -9, 6, 4, 2, 7, 8]
我想找到lookahead=4的最大值。对于这种情况,它将返回我:
如何简单地使用Python?在
我知道我可以用for循环来检查这个。但我相信python中有一种更简单的方法。在
将list映射到abs(),然后chunk the ^{}并将其发送到max():
list
abs()
max()
array = [1,2,4,5,4,5,6,7,2,6,-9,6,4,2,7,8] array = [abs(item) for item in array] # use linked question's answer to chunk # array = [[1,2,4,5], [4,5,6,7], [2,6,9,6], [4,2,7,8]] # chunked abs()'ed list values = [max(item) for item in array]
结果:
另一种方法是使用^{}模块中的islice方法:
islice
>>> from itertools import islice >>> [max(islice(map(abs,array),i,i+4)) for i in range(0,len(array),4)] [5, 7, 9, 8]
要分解它:
1-map(abs, array)返回数组元素的所有绝对值的列表 2-islice(map(abs,array),i,i+4))将数组分成四个元素块 3-i in range(0,len(array),4)步进范围为islice,以避免重叠
map(abs, array)
islice(map(abs,array),i,i+4))
i in range(0,len(array),4)
这可以用“作为伙伴的函数”来包装:
使用Python标准:
[max(abs(x) for x in arr[i:i+4]) for i in range(0, len(arr), 4)]
如果数组不能平均划分,也可以这样做。在
将} 并将其发送到
list
映射到abs()
,然后chunk the ^{max()
:结果:
^{pr2}$另一种方法是使用^{} 模块中的
islice
方法:要分解它:
1-
map(abs, array)
返回数组元素的所有绝对值的列表2-
islice(map(abs,array),i,i+4))
将数组分成四个元素块3-
i in range(0,len(array),4)
步进范围为islice
,以避免重叠这可以用“作为伙伴的函数”来包装:
^{pr2}$使用Python标准:
如果数组不能平均划分,也可以这样做。在
相关问题 更多 >
编程相关推荐