我试图在字符串中找到所有大写字母,并输出数组中的字符元素。例如:
for row in board:
print(' '.join(row))
我注意到的是,如果有两个相同的大写字母,则显示为相同的元素。即:
"PiE" would have an out put of [0, 2]
这是我的代码:
"HaH" has an output of [0,0]
谢谢,伙计们!
答案 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)
我认为这会奏效。这可能不是最好的方式,但这是我脑子里的第一个想法。