Python で連続して呼び出される一連の文字列を作成する方法を知っている人はいますか?
「ABCDEF」のように、最初に「A」、次に「B」、「C」などになりますか? または、「D」、「E」、「F」、「A」などのように、別のポイントから呼び出すこともできます
開始点、長さ、および最後に「回転」を有効にするものについては、次を使用できます: (スライス、.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'
次のような意味です。
In [3]: for i in range(len(s)+1):
...: print s[i:]
...:
ABCDEF
BCDEF
CDEF
DEF
EF
F
ここで何をしたいのかわかりません:
for c in "ABCDEF":
print (c)
一度に1文字ずつ与えられます。または、それからリストを作成することもできます:
print(list("ABCDEF"))
文字列は添字可能です:
a = "ABCDEF"
print (a[1]) #B
したがって、個々の要素をそのように取得できます...
循環する要素 3 から始まる文字列を作成する場合:
a = "ABCDEF"
cycle = a[3:] + a[:3]
その後、上記のように反復または添字を付けることができます。