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

时间:2015-02-09 03:44:19

标签: python string

比如说我有以下字符串:

Hello

我的工作就是把所有的字母移到我被告知的许多地方,然后让它说是1,结果就是:

elloH

但我的程序将其作为

返回
elloh

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

我认为您可以通过list(string)将字符串转换为列表,然后遍历列表,以及每当列表中的项目返回true isUpper()时,然后将其索引存储在列表中。我只是无法在python中编写它。

2 个答案:

答案 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'