如何在Scala中测试字符串是否在python中具有大写字母

fur*_*ame 2 python functional-programming scala

在Scala中,我可以测试一个字符串是否有这样的大写字母:

val nameHasUpperCase = name.exists(_.isUpper)
Run Code Online (Sandbox Code Playgroud)

Python中我能想到的最全面的形式是:

a ='asdFggg'
functools.reduce(lambda x, y: x or y, [c.isupper() for c in a])
->True
Run Code Online (Sandbox Code Playgroud)

有点笨拙.有没有更好的方法来做到这一点?(它只是一个脑筋急转弯并不重要:)

Wil*_*sem 7

最接近Scala语句的可能是any(..)这里的声明:

any(x.isupper() for x in a)
Run Code Online (Sandbox Code Playgroud)

这将在使用生成器时起作用:从找到这样的元素的那一刻起,any(..)它将停止并返回True.

这会产生:

>>> a ='asdFggg'
>>> any(x.isupper() for x in a)
True
Run Code Online (Sandbox Code Playgroud)

或另一个map(..):

any(map(str.isupper,a))
Run Code Online (Sandbox Code Playgroud)