如何在python字符串中旋转字母

owfi6suc  于 2022-11-21  发布在  Python
关注(0)|答案(2)|浏览(163)

创建一个scrolling_text函数,该函数接受一个字符串作为参数,从零索引到最后一个索引按顺序重新排列字符串中的所有字符,并返回一个列表,其中包含所有接收到的大写组合。
`

def scrolling_text(string: str) -> list:
    pass

`
例︰

scrolling_text("robot")

returns:
[ "ROBOT",
  "OBOTR",
  "BOTRO",
  "OTROB",
  "TROBO" ]

`
我只知道我返回的列表是大写的

oxiaedzo

oxiaedzo1#

最简单的方法是使用字符串的切片,这是一种获取序列子集的简单方法。在Python中,str可以被视为字符序列。
下面的函数可以实现这一点:

def scrolling_text(text: str) -> list[str]:
    ret = []
    for i in range(len(text)):
        ret.append(text[i:] + text[:i])
    return ret

因此,这将遍历从零开始的每个偏移量,直到字符串中的字符数。表达式text[i:]表示从偏移量i开始的子字符串,text[:i]表示直到(但不包括)I的子字符串。
如果你想要更高级的Python,你可以使用列表解析:

def scrolling_text(text: str) -> list[str]:
    return [text[i:] + text[:i] for i in range(len(text))]

或者,您可以使用生成器来缓慢地计算列表:

from typing import Iterator

def scrolling_text(text: str) -> Iterator[str]:
    for i in range(len(text)):
        yield text[i:] + text[:i]
brccelvz

brccelvz2#

这是一个非常基本的python代码:

def scrolling_text(string: str) -> list:
    out = []
    string = string.upper()
    for i in range(len(string)):
        out.append(string[i:] + string[:i])
    return out
        
res = scrolling_text("ROBOT")
print(res)  # ['ROBOT', 'OBOTR', 'BOTRO', 'OTROB', 'TROBO']

相关问题