Python读取CSV后,如何打印二维列表前20行的每行5个属性?
解决CSV二维列表前20行每行5个属性的打印问题
你之前的两段代码存在逻辑错误,导致无法实现需求:
- 第一段列表推导式仅打印了整行内容,未对列数做筛选;
- 第二段代码里的
if item[index] < 8逻辑完全错误,既没正确筛选列数,还依然打印整行。
以下是几种简洁有效的实现方式:
最直观的写法
直接截取前20行,每行再截取前5个元素打印:
for row in rows[:20]: # 直接打印前5个元素的列表 print(row[:5])
格式化输出(可选)
如果需要更易读的格式(比如用逗号分隔属性),可以转换为字符串后打印:
for row in rows[:20]: # 将前5个元素转为字符串并用逗号连接 print(', '.join(map(str, row[:5])))
带行号的遍历方式(如果需要行索引)
如果需要显示行号或必须用索引判断,可以用enumerate结合终止条件:
for idx, row in enumerate(rows): if idx < 20: print(row[:5]) else: break # 超过20行后停止循环,避免不必要的遍历
关键逻辑说明
rows[:20]:直接从二维列表中截取前20行,比逐个判断索引更简洁高效;row[:5]:截取每行的前5个元素,精准匹配你需要的每行5个属性的要求;map(str, row[:5]):如果CSV数据包含数字等非字符串类型,这一步可将所有元素转为字符串,避免连接输出时出错。
内容的提问来源于stack exchange,提问作者Mofro
相关产品推荐
相关产品推荐

