在字符串中搜索大写字母

时间:2018-01-23 21:53:55

标签: python

我试图在字符串中找到所有大写字母,并输出数组中的字符元素。例如:

for row in board:
    print(' '.join(row))

我注意到的是,如果有两个相同的大写字母,则显示为相同的元素。即:

"PiE" would have an out put of [0, 2]

这是我的代码:

"HaH" has an output of [0,0] 

谢谢,伙计们!

4 个答案:

答案 0 :(得分:2)

您可以在此处使用列表推导。这个怎么样?

elemList = [i for i, letter in enumerate(word) if letter.isupper()]

这是一个repl:

>>> def find_capitals(word):
...     return [i for i, letter in enumerate(word) if letter.isupper()]
...
>>> find_capitals('PiE')
[0, 2]
>>> find_capitals('HaHaHa')
[0, 2, 4]

答案 1 :(得分:0)

以下似乎是使用“普通”编程概念的直接方法:

def getUpperPositions(str):
    positions = []
    currentPosition = 0
    for c in str:
        if c.isupper():
            positions.append(currentPosition)
        currentPosition += 1
    return positions

print(getUpperPositions("HaH"))

答案 2 :(得分:0)

使用re.finditer()功能:

import re

s = ' ..HaH soME text heRe ...'
upper_pos = [m.start() for m in re.finditer(r'[A-Z]', s)]
print(upper_pos)

输出:

[3, 5, 9, 10, 19]

https://docs.python.org/3.6/library/re.html?highlight=re#re.finditer

答案 3 :(得分:-1)

这是一个简单的解决方案:

output = []
for i in range(text):
    if text[i].upper() == text[1]:
        output.append(i)
print(output)

我认为这会奏效。这可能不是最好的方式,但这是我脑子里的第一个想法。