带条件的列表理解

2024-07-05 14:33:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个可能包含星号的字符串,例如“c*b*”(我必须在字符之间添加空格,因为这样无法准确显示字符串)

我想使用列表理解来检查是否每个甚至字符都是星号。因此,上述字符串的输出将为True

相反,像“ab*”这样的字符串应该生成False

怎么做

编辑:

我接受了@InfinityTM的答案,尽管它并没有完全回答这个问题(我必须用全部替换任何)。@RoadRunner的答案也几乎是准确的——我不得不将any改为all,将I%2检查改为1(我的意思是——令人困惑的是——从1开始的偶数位置。我的错!)


Tags: 字符串答案falsetrue编辑列表abany
2条回答

尝试:

any(str1[i] == '*' for i in range(0,len(str1),2))

如果str1的任何元素是astrick,则返回True。 此外,要获得字符串的偶数chr,请执行以下操作:

any(i == '*' for i in str1[1::2])

使用module%运算符检查索引是否为偶数。我们可以使用^{}同时获得索引和元素,^{}检查任何元素是否满足条件

>>> s = " a b *"
>>> any(x == '*' for i, x in enumerate(s) if i % 2 == 0)
False
>>> s = "c * b *"
>>> any(x == '*' for i, x in enumerate(s) if i % 2 == 0)
True

相关问题 更多 >