首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持单个字符串和数组作为一个参数

支持单个字符串和数组作为一个参数
EN

Stack Overflow用户
提问于 2017-11-05 08:53:04
回答 1查看 130关注 0票数 1

I 扩展方法有一个额外的字符串参数(平均值):

代码语言:javascript
运行
复制
def classification_report(y_true, y_pred, labels=None, target_names=None,
                          sample_weight=None, digits=2, average='weighted'):

所以正常的用法应该是:

代码语言:javascript
运行
复制
classification_report(y_true, y_pred, average='micro')

在对Github的回顾中,审阅者建议也支持多个值:average=['micro', 'weighted', 'macro']

在Python中解决这个问题的合适方法是什么?我知道参数可以有任何类型。但是,如何处理带有字符串列表的潜在调用呢?参数的类型是什么?Union[str, List[str]]

目前,我只期望一个字符串,它是直接前进。但是,如果我也允许一个字符串列表,我应该先用type(average)检查类型,然后相应地处理这些值吗?是否有一种将参数变量转换为统一类型的优雅方法,比如averages=listify(average),它接受字符串或字符串列表,并且总是返回字符串列表?

EN

Stack Overflow用户

回答已采纳

发布于 2017-11-05 09:00:24

以下是熊猫的一个例子:

代码语言:javascript
运行
复制
if level is not None:
        if not isinstance(level, (tuple, list)):
            level = [level]

这是pandas.DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')方法中的代码,其中级别应该是一个int, str, tuple, or list, default None。这段简单的代码只需确保参数现在存储在列表中,而不管它是如何给出的。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47119793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档