You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Linux命令行中如何实现数据集偶数行转换为偶数列排列

数据集交替行列合并操作说明

需求说明

你需要处理的原始数据集结构如下:

37  151 36  34  40  56  59  42  28  38  60
1   11  0   0   2   2   3   4   0   0   4
35  158 35  37  40  56  58  48  31  40  72
1   2   1   1   0   0   0   0   1   0   0
32  132 32  30  36  57  53  35  25  34  54
8   36  4   8   8   7   13  13  3   6   14
40  162 36  38  41  66  64  46  27  35  60
0   2   0   0   1   0   0   0   1   1   2
32  151 31  34  41  58  66  45  33  40  66
0   5   3   2   1   2   0   1   1   4   6

需要实现的转换规则:保留奇数行与奇数列原有内容,将偶数行的数值按顺序插入到前一奇数行对应数值的后方作为偶数列,最终输出结构如下:

37 1 151 11 36 0 34 0 40 2 56 2 59 3 42 4 28 0 38 0 60 4
35 1 158 2 35 1 37 1 40 0 56 0 58 0 48 0 31 1 40 0 72 0
32 8 132 36 32 4 30 8 36 8 57 7 53 13 35 13 25 3 34 6 54 14
40 0 162 2 36 0 38 0 41 1 66 0 64 0 46 0 27 1 35 1 60 2
32 0 151 5 31 3 34 2 41 1 58 2 66 0 45 1 33 1 40 4 66 6

实现代码示例

以下是Python版本的可直接运行的实现代码:

# 读取原始数据并按行分割
raw_data = """37  151 36  34  40  56  59  42  28  38  60
1   11  0   0   2   2   3   4   0   0   4
35  158 35  37  40  56  58  48  31  40  72
1   2   1   1   0   0   0   0   1   0   0
32  132 32  30  36  57  53  35  25  34  54
8   36  4   8   8   7   13  13  3   6   14
40  162 36  38  41  66  64  46  27  35  60
0   2   0   0   1   0   0   0   1   1   2
32  151 31  34  41  58  66  45  33  40  66
0   5   3   2   1   2   0   1   1   4   6"""
lines = [line.split() for line in raw_data.strip().split('\n')]

result = []
# 按两行一组遍历处理
for i in range(0, len(lines), 2):
    odd_line = lines[i]
    even_line = lines[i+1]
    # 交替拼接两组元素
    merged_line = []
    for a, b in zip(odd_line, even_line):
        merged_line.append(a)
        merged_line.append(b)
    result.append(' '.join(merged_line))

# 打印输出结果
for line in result:
    print(line)

内容的提问来源于stack exchange,提问作者Nitin Ravikanthachari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:06:05