python - 如何制作可以处理单个输入或输入列表的函数

标签 python function

我将用几个过于简单的函数来说明我的问题,这些函数只是平方数。但这是编写我想了解的函数的一般最佳实践。

假设我有一个我想要平方的数字,我可以编写以下函数。

def square (x):
    y = x**2
    return y

如果我有一个数字列表,并且想得到每个元素都是平方的列表,我可以使用

def square (x_list):
    y_list = []
    for x in x_list:
        y_list.append( x**2 )
    return y_list

但我只想编写一个函数来处理这两种情况。它将查看输入是数字还是列表,并据此采取行动。我可以使用 type 来检测类型,但我想知道最符合 pythonic 的方法是什么。

最佳答案

如果你用numpy就很简单了。对于多个元素,将其作为一个数组。对于单个元素,该函数将按原样应用。

import numpy as np

def square(a):
    return a**2

a = np.array([2,3,4,5])
print(square(a)) # array([ 4,  9, 16, 25])

b = 9
print(square(b)) # 81

关于python - 如何制作可以处理单个输入或输入列表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52011435/

相关文章:

python - 如何更改与黑色接触的像素颜色集

python - 用户没有存储桶的 storage.objects.list 访问权限

python - 设置Raspberry Pi 3B +以立即启动并运行Python脚本

python - 从 .txt 文件中获取信息

function - Dart:从函数访问调用者实例

php - 创建以 function 作为参数的 PHP 函数

python - 如何保存数据库配置而不将它们写入我的 python 文件

c - 如何修改已传递给 C 函数的指针?

.net - Powershell:调用 .NET 函数总是需要括号吗?

Javascript 不在循环内创建函数