【发布时间】:2019-10-24 08:57:19
【问题描述】:
Mathematica 有两个非常有用的函数,可以根据给定的条件将数组分组为较小数组的列表:Split[] 和 SplitBy[],我需要在 Python3 代码中进行模拟:
Split[list,test] 将函数 "test" 应用于相邻元素对时,将它们视为相同的结果为 True,
SplitBy[list,f] 将列表拆分为子列表,这些子列表由连续元素的运行组成,这些元素在应用 f 时给出相同的值。
如果
a=[2,3,5,7,11,13,17,19,23,29]
Split[a,(#2-#1
[[2,3,5,7],[11,13],[17,19],[23],[29]]
SplitBy[a,(Mod[#,2]==0)&] 给出:
[[2],[3,5,7,11,13,17,19,23,29]]
实际上,要拆分的数组可能是一个二维表,并且测试函数可能对各个列中的元素起作用。
如何在 Python3 中有效地编码这种行为?
【问题讨论】:
标签: python arrays split wolfram-mathematica