比如说我有以下字符串:
Hello
我的工作就是把所有的字母移到我被告知的许多地方,然后让它说是1,结果就是:
elloH
但我的程序将其作为
返回elloh
我想知道的是,如何获得一个包含大写字母位置索引的列表,这样我就可以在新字符串大写的同一位置制作字母?
我认为您可以通过list(string)
将字符串转换为列表,然后遍历列表,以及每当列表中的项目返回true
isUpper()
时,然后将其索引存储在列表中。我只是无法在python中编写它。
答案 0 :(得分:6)
我会假设你的问题是:
我的工作是将所有信件转移到我被告知的许多地方
在这种情况下,请尝试:
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]
答案 1 :(得分:2)
通过@ John1024
添加到解决方案中这支持任何号码按
旋转def shift(s, n):
return s[n%len(s):] + text[:n%len(s)]
>>> shift('Hello', 51)
'elloH'