我有一个Python列表,我想检查是否有任何元素是否定的.Specman有has()列表的方法:
x: list of uint;
if (x.has(it < 0)) {
// do something
};
Run Code Online (Sandbox Code Playgroud)
itSpecman关键字在哪里依次映射到列表的每个元素.
我觉得这很优雅.我查看了Python文档,找不到类似的东西.我能想到的最好的是:
if (True in [t < 0 for t in x]):
# do something
Run Code Online (Sandbox Code Playgroud)
我发现这相当不优雅.有没有更好的方法在Python中执行此操作?
我需要检查列表中的任何字符串是否与正则表达式匹配.如果有的话,我想继续.我过去总是这样做的方式是使用列表理解,例如:
r = re.compile('.*search.*')
if [line for line in output if r.match(line)]:
do_stuff()
Run Code Online (Sandbox Code Playgroud)
我现在意识到这是非常低效的.如果列表中的第一个项目匹配,我们可以跳过所有其余的比较并继续.我可以改进这个:
r = re.compile('.*search.*')
for line in output:
if r.match(line):
do_stuff()
break
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更多的pythonic方式来做到这一点.