首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何断言该参数仅包含Python中列出的整数

如何断言该参数仅包含Python中列出的整数
EN

Stack Overflow用户
提问于 2017-11-15 11:14:16
回答 3查看 1.6K关注 0票数 4

我有一个Python方法,我只想接受列出的或单数的整数,我如何定义它?

代码语言:javascript
运行
复制
def autoInt(integers):
    assert int(integers)
    assert len(integers) > 0

这是失败的,因为我不能有一个列表。我肯定这很简单。

TypeError: int()参数必须是字符串或数字,而不是'list‘

编辑:我的任务是这个方法只能接受列表中的整数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-15 11:22:11

这取决于定义中以整数的形式传递的内容。例如,bool的实例算不算?浮点1.0

无论如何,您可以将all内置的内容与生成器表达式结合起来。

代码语言:javascript
运行
复制
>>> a = [1,2,True]
>>> all(isinstance(x, int) for x in a)
True

作为一个侧面:严格检查参数类型,而不是Python程序员在没有特定原因时所做的事情。更好的方法通常是编写清晰的文档字符串和/或键入提示。

Here是一个解释如何做后者的答案。除此之外,通常还存在“->垃圾(或错误)中的垃圾”的心态。

票数 4
EN

Stack Overflow用户

发布于 2017-11-15 11:21:17

您可以测试这样的整数列表:

代码语言:javascript
运行
复制
assert(all(isinstance(item, int) for item in integers))

来自How to test if every item in a list of type 'int'?

票数 1
EN

Stack Overflow用户

发布于 2017-11-15 11:22:05

代码语言:javascript
运行
复制
>>> my_list = [1, 2, 3.25]
>>> all(isinstance(item, int) for item in my_list)
False
>>> other_list = range(3)
>>> all(isinstance(item, int) for item in other_list)
True
>>> 

资料来源: https://stackoverflow.com/a/6009630/6748523

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47305922

复制
相关文章

相似问题

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