在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
相关产品推荐
相关产品推荐

