如何定义一个使用 Python 读取并返回列表中所有值的函数?
Posted
技术标签:
【中文标题】如何定义一个使用 Python 读取并返回列表中所有值的函数?【英文标题】:How can i define a function that reads and returns all values in the list using Python? 【发布时间】:2020-06-05 13:42:41 【问题描述】:我有这个字符串用逗号分隔。
'1.0,5.0,6.0,7.0,8.0,9.0'
def var():
for i in listnumbers:
return i +'.0'
当我这样做时
var()
我只会得到
1.0
如何让结果包含循环中的所有数字?
1.0,5.0,6.0,7.0,8.0,9.0
【问题讨论】:
你的函数只返回一个值,因为 return 语句是 in 循环,所以它在第一次迭代时返回。您应该尝试收集循环中的值,然后在循环完成时返回集合。 【参考方案1】:def myfun(mycsv):
return [i+'.0' for i in mycsv.split(',')]
print(myfun('1.0,5.0,6.0,7.0,8.0,9.0'))
#['1.0.0', '5.0.0', '6.0.0', '7.0.0', '8.0.0', '9.0.0']
如果你想要一个字符串,那么只需使用join:
print(','.join(myfun('1.0,5.0,6.0,7.0,8.0,9.0')))
或者改变函数返回一个字符串;
return ','.join([i+'.0' for i in mycsv.split(',')])
【讨论】:
有没有办法将其保存为字符串?在这里它变成了一个列表。 编辑回答,你应该多读一点python的工作原理【参考方案2】:在循环完成之前,您正在循环内部返回。
如果我正确理解了您的问题,那么您正在寻找的似乎是列表理解。
如果您的输入是一个列表:
def var(l):
return [i + '.0' for i in l]
如果您的输入是一个字符串,就像从您的描述中看到的那样,您必须先将其拆分:
def var(l):
return [i + '.0' for i in l.split(',')]
这相当于其他语言中的map
ping。
【讨论】:
【参考方案3】:您可以使用string.split(',')
将字符串划分为列表,然后遍历新创建的列表并打印每个元素。 A 代码可以这样排列:
for s in string.split(','):
print(s+'.0')
【讨论】:
以上是关于如何定义一个使用 Python 读取并返回列表中所有值的函数?的主要内容,如果未能解决你的问题,请参考以下文章
从文本文件中读取句子并使用 Python 3 附加到列表中 [关闭]