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)
有点笨拙.有没有更好的方法来做到这一点?(它只是一个脑筋急转弯并不重要:)
最接近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)
| 归档时间: |
|
| 查看次数: |
2223 次 |
| 最近记录: |