gpt4 book ai didi

python - 如何为文档的长度运行一个函数

转载 作者:太空宇宙 更新时间:2023-11-04 09:56:40 25 4
gpt4 key购买 nike

以下代码的结果为 2\n 4\n 6\n 8\n。

with open('test.csv','r')as document:
for line in document:
line=line.split(',')
for item in line:
item=item.replace('\n','')
item=int(item)*2
print(item)

但是,当我尝试将它用作如下函数时,结果仅为 2。

def results():
with open('test.csv','r')as document:
for line in document:
line=line.split(',')
for item in line:
item=item.replace('\n','')
item=int(item)*2
return item

print(results())

大概这只运行一次函数。如何在文档长度内运行该函数?谢谢。

最佳答案

您需要创建一个列表来附加您的项目。您的函数只在每个循环中运行一次,因为您在第一次迭代时return

def results():
items = list()
with open('test.csv','r')as document:
for line in document:
line=line.split(',')
for item in line:
item=item.replace('\n','')
item=int(item)*2
items.append(item)
return items

In [6]: results()
Out[6]: [2, 4, 6, 8]

或者您可以保持相同的逻辑并使用 yield 来创建一个生成器:

def results():
with open('test.csv','r')as document:
for line in document:
line=line.split(',')
for item in line:
item=item.replace('\n','')
item=int(item)*2
yield item


In [4]: [i for i in results()]
Out[4]: [2, 4, 6, 8]

请注意,后一个示例将文件保持打开状态,直到生成器被清理。

关于python - 如何为文档的长度运行一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45534132/

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