Skip to main content
 首页 » 编程设计

Python 新手 : Returning Multiple Int/String Results in Python

2025年05月04日9虾米哥

我有一个有多个输出的函数,所有输出都是“本地”的,即整数和字符串。例如,假设我有一个分析字符串的函数,可以找到单词的数量和单词的平均长度。

在 C/C++ 中,我会使用 @ 将 2 个参数传递给函数。在 Python 中我不确定什么是正确的解决方案,因为整数和字符串不是通过引用传递而是通过值传递(至少这是我从反复试验中了解到的),所以下面的代码将不起作用:

def analyze(string, number_of_words, average_length): 
 
    ... do some analysis ... 
 
    number_of_words = ...     
    average_length = ... 

如果我执行上述操作,函数范围之外的值不会改变。我目前所做的是使用这样的字典:

def analyze(string, result): 
 
    ... do some analysis ... 
 
    result['number_of_words'] = ...     
    result['average_length'] = ... 

我使用这样的函数:

s = "hello goodbye" 
result = {} 
analyze(s, result) 

然而,这感觉不对。实现此目标的正确 Pythonian 方法是什么?请注意,我指的只是函数返回 2-3 个结果的情况,而不是数十个结果。另外,我是 Python 的新手,所以我知道我可能在这里遗漏了一些微不足道的东西......

谢谢

请您参考如下方法:

python 有一个return 语句,它允许您执行以下操作:

def func(input): 
    # do calculation on input 
    return result 
 
s = "hello goodbye" 
res = func(s)       # res now a result dictionary 

但是你根本不需要result,你可以像这样返回一些值:

def func(input): 
    # do work 
    return length, something_else         # one might be an integer another string, etc. 
 
s = "hello goodbye" 
length, something = func(s)