例如,假设我有以下字符串:
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'