获取字符串中大写字母的索引



例如,假设我有以下字符串:

Hello

我的工作是把所有的字母按我被告知的位置转移,假设是1,那么结果就是:

elloH

但我的程序将其作为返回

elloh

我想知道的是,如何获得一个包含大写字母所在索引的列表,这样我就可以使新字符串中同一位置的字母大写?

我认为您应该通过list(string)将String转换为列表,然后在列表中进行迭代,每当列表中的项为isUpper()返回true时,将其索引存储在列表中。我只是不能用python写它。

我假设您的问题是关于:

我的工作是把所有的信件按我被告知的地点转移到

在这种情况下,请尝试:

def shift(s, n): 
    return s[n:] + s[:n]

示例:

>>> shift('Hello', 1)
'elloH'
>>> shift('Hello', 2)
'lloHe'

这似乎是您正在查找的输出。

如何获取字符串中大写字母的索引:

def getindices(s):
    return [i for i, c in enumerate(s) if c.isupper()]

示例:

>>> getindices('Hello')
[0]
>>> getindices('HeLlO')
[0, 2, 4]

通过@John1024 添加到解决方案

这支持任何编号通过旋转

def shift(s, n):
    return s[n%len(s):] + text[:n%len(s)]

>>> shift('Hello', 51)
'elloH'