有没有人知道在Python中创建一系列连续调用的字符串的方式?
像'ABCDEF'然后首先进入'A',然后'B'然后'C'等?或者你可以从不同的角度给他们打电话,比如'D'然后'E'然后是'F'然后是'A'等等
答案 0 :(得分:1)
对于能够在结束时启用起点,长度和“旋转”的东西,您可以使用:
(注意切片,.index()
命令和方便的ascii_uppercase
常量)
from itertools import islice, cycle
from string import ascii_uppercase
def func(start='A', length=1, source=ascii_uppercase):
src = list(source)
idx = src.index(start)
cyc = cycle(src[idx:] + src[:idx])
return ''.join(islice(cyc, length))
>>> func(length=10)
'ABCDEFGHIJ'
>>> func(length=10, start='X')
'XYZABCDEFG'
>>> func()
'A'
>>> func(length=3)
'ABC'
答案 1 :(得分:0)
我不确定你想要什么:
for c in "ABCDEF":
print (c)
一次只能给你一个角色。或者您可以构建一个列表:
print(list("ABCDEF"))
字符串是可订阅的:
a = "ABCDEF"
print (a[1]) #B
所以你可以通过这种方式得到各个元素......
如果要构造从元素3开始的循环字符串:
a = "ABCDEF"
cycle = a[3:] + a[:3]
然后可以如上所述迭代或下标。
答案 2 :(得分:0)
你的意思是这样的:
In [3]: for i in range(len(s)+1):
...: print s[i:]
...:
ABCDEF
BCDEF
CDEF
DEF
EF
F