C#如何读取多行空格分隔数字并按列存入对应数组?
按列读取多行数字并存储为整数数组
实现思路
- 读取用户输入的多行内容,直到输入空行终止
- 将每行的空格分隔字符串分割后转为整数,形成二维行列表
- 通过转置操作把行数据转换为列数据,对应到目标数组
Python 代码实现
# 读取多行输入,过滤空行 lines = [line.strip() for line in iter(input, '') if line.strip()] # 把每行内容转成整数列表,存储为二维行数据 rows = [] for line in lines: num_list = list(map(int, line.split())) rows.append(num_list) # 转置二维列表,得到按列划分的数组集合 cols = list(zip(*rows)) # 按要求格式输出各列数组 for idx, col in enumerate(cols, start=1): arr_name = f'arr {chr(ord("a") + idx - 1)}' print(f'{arr_name} = {list(col)}')
代码细节说明
iter(input, ''):持续读取用户输入,直到输入空行时停止读取map(int, line.split()):将每行的空格分隔字符串逐个转为整数zip(*rows):对二维行列表进行转置,把行数据转换为列数据,比如原[[184,272,...], [650,42,...]]会被转为[(184,650,...), (272,42,...)]chr(ord("a") + idx -1):自动生成arr a、arr b这类依次命名的数组标识
测试输入输出示例
输入:
184 272 292 527
650 42 786 750
494 156 897 982
109 558 892 684
(回车后输入空行结束)
输出:
arr a = [184, 650, 494, 109]
arr b = [272, 42, 156, 558]
arr c = [292, 786, 897, 892]
arr d = [527, 750, 982, 684]
额外扩展
如果需要将各列数据存为独立的变量直接使用,可以添加如下代码:
arr_a, arr_b, arr_c, arr_d = cols # 如需转为列表格式,可使用 list(arr_a) 进行转换
内容的提问来源于stack exchange,提问作者someone1118
相关产品推荐
相关产品推荐

