如何在Python中遍历列表的列表并仅打印分类为Hardware的行?
解决Python遍历列表列表并筛选Hardware行的问题
没问题,我来帮你搞定这个作业难题!首先先补全你已经写的读取函数,然后再实现筛选逻辑。
首先,你需要记得导入csv模块,而且你的read_text函数目前没有返回读取到的列表,得加上return语句,这样后续才能使用这个数据:
import csv def read_text(): with open("products.csv", "r", newline="") as file: reader = csv.reader(file) temp_prod = list(reader) return temp_prod # 加上返回语句,把读取到的列表返回出去
接下来,你可以通过基础的for循环来遍历这个列表的列表,检查每一行的第一个元素(也就是分类列,索引为0)是否等于'Hardware',如果是就打印整行:
# 调用读取函数获取数据 products = read_text() # 遍历每一行数据 for row in products: # 检查当前行的分类是否为Hardware if row[0] == 'Hardware': print(row) # 打印符合条件的行
如果你想让打印的格式更美观(比如和原CSV格式一致,用逗号分隔),可以改成:
for row in products: if row[0] == 'Hardware': print(','.join(row))
另外,也可以用更简洁的列表推导式先筛选出所有Hardware行,再统一打印,这也是Python里常用的写法:
hardware_items = [row for row in products if row[0] == 'Hardware'] for item in hardware_items: print(item)
这样运行后,控制台就会输出:
Hardware,Hammer,10,10.99
Hardware,Wrench,12,5.75
内容的提问来源于stack exchange,提问作者JMoney
相关产品推荐
相关产品推荐

