将数组分成 n 组并保留顺序

问题描述 投票:0回答:1

我的问题类似于how-do-you-break-an-array-in-groups-of-n

有一个数组:

aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,lll,mmm

被分割为 3 个包含 4 个元素的数组和 1 个包含 1 个元素的数组,以获得输出:

aaa,bbb,ccc,ddd
eee,fff,ggg,hhh
iii,jjj,kkk,lll
mmm

使用以下脚本:

#!/bin/bash
array=(aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk lll mmm)
g=4
for((i=0; i < ${#array[@]}; i+=g))
    do
    part=( "${array[@]:i:g}" )
    echo "Elements in this group: ${part[*]}"
done

我将很感激基于unix的方法如何对数组进行分段以获得以下输出(即10个数组),并且还能够在数组中定义任意数量的元素(即就像上面的脚本):

aaa,bbb,ccc,ddd
bbb,ccc,ddd,eee
ccc,ddd,eee,fff
ddd,eee,fff,ggg
eee,fff,ggg,hhh
fff,ggg,hhh,iii
ggg,hhh,iii,jjj
hhh,iii,jjj.kkk
iii,jjj,kkk,lll
jjj,kkk,lll,mmm

谢谢你。

arrays permutation
1个回答
0
投票

我只能用Python来做。您必须转换为 c++。

片段:

listA = 'aaa','bbb','ccc','ddd','eee','fff','ggg','hhh','iii','jjj','kkk','lll','mmm'

def matrix_4x4(m,n, sep):
    print( "\n".join(map("{}".format(sep).join, (m[i:i+n] for i in range(0, len(m), n))))) 
matrix_4x4(listA, 4, ",")

输出:

aaa,bbb,ccc,ddd
eee,fff,ggg,hhh
iii,jjj,kkk,lll
mmm
© www.soinside.com 2019 - 2024. All rights reserved.