我正在尝试运行一个可以从 python 中的 csv 文件读取特定数据行的代码。
import csv
with open('details.csv', 'rt') as f:
reader = csv.reader(f)
selected_details = input("Enter student ID for details:\n")
for selected_details in reader:
print(reader)
我如何接受输入然后使用它来选择和打印该特定行?
过滤器应该可以解决问题,例如
import csv
with open('details.csv', 'rt') as f:
reader = csv.reader(f)
selected_details = input("Enter student ID for details:\n")
results = filter(lambda x: selected_details in x, reader)
for line in results:
print(line)
Filter 接受一个 itterable(这里是 reader),并将应用你给他的 lambda 的 itterable 的每个元素,并将返回一个“过滤”的新列表。如果 lambda 返回 True,则元素将在过滤后的列表中返回。
一个 lambda 基本上是一个侏儒函数(更聪明,更书呆子的人会纠正我这个过度简化,但你明白了)它返回你给他的唯一一行。
所以我的 lambda 只是执行“selected_details in x”操作,如果 selected_details 在 x 中,则返回 True,否则返回 False,你明白了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句