python - 断言包含特定长度字符串的列表

标签 python

我有一个字符串列表,我想确保没有长度> 20 的字符串,所以我执行了以下操作:

assert not any(name for name in my_list if len(name) > 20)

这似乎有效,但是当我执行以下操作时,它没有按预期工作,不应该工作吗?:

assert any(name for name in my_list if not len(name) <= 20)

最佳答案

更简单的方法是:

assert not any(len(name) > 20 for name in my_list)

这只是检查每个名称,直到找到一个长度超过 20 个字符的名称。

但是更好的方法是:

assert all(len(name) <= 20 for name in my_list)

这避免了反转测试的需要。

关于python - 断言包含特定长度字符串的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64943243/

相关文章:

python - 如何从 python 中的请求中获取响应 SSL 证书?

python - Django继承: how to have one method for all subclasses?

Python/Pandas 从 Excel 表复制和粘贴

python - 使用Python替换/etc/passwd文件中的字符而不破坏系统

python - 选择相关 - 从外键中选择一个对象

python - 使用 python 列表理解时,如何在索引中包含两个元素?

python - 如何找出每个唯一键的趋势。数据框

python - 迭代 pandas 时间戳时获取 for 循环的索引

在 Windows 10 上安装 python 3.5 Scipy 包

python - 赋值前引用的局部 (?) 变量