gpt4 book ai didi

Python 和 CSV : find a row and give column value

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:15 25 4
gpt4 key购买 nike

它包括创建一个函数 def(,),用于在 CSV 文件中搜索 child 的名字并给出他的年龄。

CSV 文件的结构如下:

Nicholas,12
Matthew,6
Lorna,12
Michael,8
Sebastian,8
Joseph,10
Ahmed,15

虽然我试过的代码是这样的:

def fetchcolvalue(kids_agefile, kidname):

import csv

file = open(kids_agefile, 'r')
ct = 0

for row in csv.reader(file):
while True:
print(row[0])
if row[ct] == kidname:
break

令人沮丧的是,它没有给我任何错误,而是一个无限循环:我认为这就是我做错的地方。

到目前为止,我从书上学到的只有循环(whilefor)和if-elif-else循环,除了CSV和文件的基本操作操作,所以我无法真正弄清楚如何仅使用这些工具来解决问题。

请注意,该函数必须使用通用的 2 列 CSV 文件,而不仅仅是 children 的文件。

最佳答案

循环中的 while True 将使您永远循环(循环内没有变量发生变化)。只需删除它:

for row in csv.reader(file):
if row[ct] == kidname:
break
else:
print("{} not found".format(kidname))

csv 文件被迭代,一旦 row[ct] 等于 kidname,它就会中断。

我会添加一个 else 语句,这样您就可以知道文件是否已被完全扫描而没有找到 child 的名字(只是为了在之后公开一些鲜为人知的 else 用法) for 循环:如果没有遇到 break,则进入 else 分支。)

编辑:您可以使用 any 和生成器理解在一行中完成:

any(kidname == row[ct] for row in csv.reader(file))

如果任何第一个单元格匹配,将返回 True,也可能更快。

关于Python 和 CSV : find a row and give column value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40945759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com