在python中创建一系列字符串

时间:2012-11-24 15:27:31

标签: python string list series

有没有人知道在Python中创建一系列连续调用的字符串的方式?

像'ABCDEF'然后首先进入'A',然后'B'然​​后'C'等?或者你可以从不同的角度给他们打电话,比如'D'然后'E'然后是'F'然后是'A'等等

3 个答案:

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