파이썬에서 연속적으로 호출되는 일련의 문자열을 만드는 방법을 아는 사람이 있습니까?파이썬에서 일련의 문자열 만들기
'ABCDEF'와 유사하면 'A'를 먼저 입력 한 다음 'B'를 누른 다음 'C'등을 입력 하시겠습니까? 또는 당신은 'D'처럼, 다른 지점에서 다음 다음 'E'다음 'F'를 그들을 부를 수있는 'A'등
파이썬에서 연속적으로 호출되는 일련의 문자열을 만드는 방법을 아는 사람이 있습니까?파이썬에서 일련의 문자열 만들기
'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'
이것이 실제로 작동한다고 생각합니다! –
@PavAmetvic 만약 당신이 당신 자신을 아주 쉽게 구축 할 수있을만큼 충분하다면 –
난 당신이 여기에 원하는 것을 확실하지 않다 :
for c in "ABCDEF":
print (c)
당신에게 줄 것이다 한 번에 한 문자 씩. 또는 당신은 그것의 목록을 만들 수 있습니다 :
print(list("ABCDEF"))
문자열은 첨자에 있습니다
a = "ABCDEF"
print (a[1]) #B
그래서 당신이 그런 식으로 개별 요소를 얻을 수 있습니다 ...
을 당신이를 구성하려면 순환하는 요소 3에서 시작하는 문자열 :
a = "ABCDEF"
cycle = a[3:] + a[:3]
그런 다음 반복되거나 subscri 될 수 있습니다. 위와 같이 pted.
당신은이 같은 뜻 : 시작점을 가능하게 뭔가, 길이, 말의 주위에 "회전"를
In [3]: for i in range(len(s)+1):
...: print s[i:]
...:
ABCDEF
BCDEF
CDEF
DEF
EF
F
당신이 무엇을 하려는지 명확히하십시오. 현재 의문점은 분명하지 않습니다. – phant0m
혼란에 대해 죄송합니다.이 포럼을 처음 사용 ... 매번 다른 시작점이있는 일련의 문자열 (예 : 문자)을 순환하는 가장 쉬운 방법을 찾으려고합니다. 마치 'ABCDEF'와 같이 'A', 'B'등 다른 문자열을 각각 구할 수 있지만 고정 반복 루프가 있습니다. 그리고 각 반복에는 C, D, E, F와 같은 시작점이 다를 수 있지만 항상 6 개의 문자열 또는 원래만큼 반복됩니다. 나는 그것을 더 혼란스럽게 만들었다 고 생각한다 ...! –