如何使用 python 检查字符串中的字母是否大写?

发布于 2024-10-12 10:22:52 字数 74 浏览 3 评论 0原文

我有一个像“asdfHRbySFss”这样的字符串,我想一次浏览一个字符,看看哪些字母是大写的。我怎样才能在Python中做到这一点?

I have a string like "asdfHRbySFss" and I want to go through it one character at a time and see which letters are capitalized. How can I do this in Python?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

素衣风尘叹 2024-10-19 10:22:52

如果您想

letters = "asdfHRbySFss"
uppers = [l for l in letters if l.isupper()]

将其带回到字符串你可以这样做:

print "".join(uppers)

Use string.isupper()

letters = "asdfHRbySFss"
uppers = [l for l in letters if l.isupper()]

if you want to bring that back into a string you can do:

print "".join(uppers)
遇到 2024-10-19 10:22:52

在 Python 2.7+ 中执行 sdolan 解决方案的另一种更紧凑的方法

>>> test = "asdfGhjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
upper
>>> test = "asdfghjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
lower

Another, more compact, way to do sdolan's solution in Python 2.7+

>>> test = "asdfGhjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
upper
>>> test = "asdfghjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
lower
很酷又爱笑 2024-10-19 10:22:52

将 string.isupper() 与 filter() 一起使用

>>> letters = "asdfHRbySFss"
>>> def isCap(x) : return x.isupper()
>>> filter(isCap, myStr)
'HRSF'

Use string.isupper() with filter()

>>> letters = "asdfHRbySFss"
>>> def isCap(x) : return x.isupper()
>>> filter(isCap, myStr)
'HRSF'
半透明的墙 2024-10-19 10:22:52
m = []
def count_capitals(x):
  for i in x:
      if i.isupper():
        m.append(x)
  n = len(m)
  return(n)

这是处理列表的另一种方法,如果您想要恢复大写字母,只需删除 len()

m = []
def count_capitals(x):
  for i in x:
      if i.isupper():
        m.append(x)
  n = len(m)
  return(n)

This is another way you can do with lists, if you want the caps back, just remove the len()

浅语花开 2024-10-19 10:22:52

另一种使用 ascii 字符集的方法 - 类似于 @sdolan

letters = "asdfHRbySFss"
uppers = [l for l in letters if ord(l) >= 65 and ord(l) <= 90] #['H', 'R', 'S', 'F']
lowers= [l for l in letters if ord(l) >= 97 and ord(l) <= 122] #['a', 's', 'd', 'f', 'b', 'y', 's', 's']

Another way to do it using ascii character set - similar to @sdolan

letters = "asdfHRbySFss"
uppers = [l for l in letters if ord(l) >= 65 and ord(l) <= 90] #['H', 'R', 'S', 'F']
lowers= [l for l in letters if ord(l) >= 97 and ord(l) <= 122] #['a', 's', 'd', 'f', 'b', 'y', 's', 's']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文