programing

Python을 사용하여 문자열의 각 문자 반복

minecode 2022. 9. 9. 00:16
반응형

Python을 사용하여 문자열의 각 문자 반복

Python에서 문자열을 반복하려면 어떻게 해야 합니까(루프를 통해 한 번에 하나씩 문자열에서 각 문자를 가져옵니다).

요하네스가 지적했듯이

for c in "string":
    #do something with c

Python의 거의 모든 것을 반복할 수 있습니다.for loop건설하다,

예를들면,open("file.txt")파일 오브젝트를 반환(및 파일을 엽니다)하여 해당 파일의 행에 걸쳐 반복한다.

with open(filename) as f:
    for line in f:
        # do something with line

그게 마법 같으면 좀 그렇긴 하지만, 그 배후에 있는 생각은 정말 간단해.

간단한 반복기 프로토콜이 있어 어떤 종류의 오브젝트에도 적용되어for루프 작업을 합니다.

이 기능을 정의하는 반복기를 구현하기만 하면 됩니다.next()method 및 실장__iter__반복할 수 있도록 하는 방법.(the)__iter__물론, 는 반복기 오브젝트, 즉 를 정의하는 오브젝트를 반환해야 합니다.next())

공식 문서 참조

문자열을 반복할 때 인덱스에 액세스해야 하는 경우 다음을 사용합니다.

>>> for i, c in enumerate('test'):
...     print i, c
... 
0 t
1 e
2 s
3 t

한층 더 간단하게:

for c in "test":
    print c

좀 더 포괄적인 답변을 드리자면, 만약 당신이 정말로 둥근 구멍에 정사각형 못을 박고 싶다면 문자열에 대해 반복하는 C 방식을 Python에 적용할 수 있습니다.

i = 0
while i < len(str):
    print str[i]
    i += 1

하지만 끈이 본질적으로 반복 가능한데 왜 그런걸까요?

for i in str:
    print i

이와 같이 흥미로운 것을 할 수도 있고, 루프를 사용하여 자신의 일을 할 수도 있습니다.

#suppose you have variable name
name = "Mr.Suryaa"
for index in range ( len ( name ) ):
    print ( name[index] ) #just like c and c++ 

정답은

MR. SU RY a

단, range()는 시퀀스 값 목록을 작성하기 때문에 직접 이름을 사용할 수 있습니다.

for e in name:
    print(e)

이것은 또한 동일한 결과를 생성하며 더 보기 좋고 목록, 튜플 및 사전과 같은 모든 시퀀스와 함께 작동합니다.

tow Built in Functions(PIthon 커뮤니티의 BIF)를 사용하고 있습니다.

1) range() - range() BIF를 사용하여 인덱스를 만듭니다.예

for i in range ( 5 ) :
can produce 0 , 1 , 2 , 3 , 4

2) len() - len() BIF 를 사용하여 지정된 문자열의 길이를 확인합니다.

보다 기능적인 방법으로 문자열을 반복하는 경우(아마도 변환하는 경우), 문자열을 문자로 분할하고 함수를 각 문자열에 적용한 후 결과 문자 목록을 문자열로 다시 결합할 수 있습니다.

문자열은 본질적으로 문자 목록이기 때문에 'map'은 문자열에서 반복됩니다. 즉, 두 번째 인수로, 함수(첫 번째 인수)를 각 인수에 적용합니다.

예를 들어, 여기서는 간단한 람다 방식을 사용합니다.각 문자 값을 증가시키려면 다음과 같이 문자를 약간 수정해야 합니다.

>>> ''.join(map(lambda x: chr(ord(x)+1), "HAL"))
'IBM'

또는 보다 일반적으로:

>>> ''.join(map(my_function, my_string))

여기서 my_function은 char 값을 가져와서 char 값을 반환합니다.

여기에서는 몇 가지 답을 사용합니다.rangexrange는 일반적으로 완전히 검증된 목록보다 제너레이터를 반환하기 때문에 더 좋습니다.될 수 , 모리나 where양양양양양양양양양양 where where where where where where where where where where where where where where where where where where where where where where where where where where where where where where where where where where where.xrange월하하다

다음 작업도 수행할 수 있습니다.

txt = "Hello World!"
print (*txt, sep='\n')

루프를 사용하지 않지만 내부적으로 인쇄문을 처리합니다.

*으로 보냅니다.

sep='\n'가 새 .

출력은 다음과 같습니다.

H
e
l
l
o
 
W
o
r
l
d
!

loop 문이 필요한 경우 다른 사용자가 설명한 바와 같이 for 루프를 다음과 같이 사용할 수 있습니다.

for x in txt: print (x)

할 에 처하게 된다면get the next char of the word using __next__() , , , 을 마세요.string_iterator 을 반복하지 반복한다.original string (it does not have the __next__() method)

예에서는 = " " " " = " " " 를 때[ 를 찾을 수 없을 때 있다.]는 __next_next_man_next_man_man_next_man_man_next_man_man_man_man_man_man_da를

여기서 포루프는 스트링 위에 있는 것은 도움이 되지 않습니다.

myString = "'string' 4 '['RP0', 'LC0']' '[3, 4]' '[3, '4']'"
processedInput = ""
word_iterator = myString.__iter__()
for idx, char in enumerate(word_iterator):
    if char == "'":
        continue

    processedInput+=char

    if char == '[':
        next_char=word_iterator.__next__()
        while(next_char != "]"):
          processedInput+=next_char
          next_char=word_iterator.__next__()
        else:
          processedInput+=next_char

언급URL : https://stackoverflow.com/questions/538346/iterating-each-character-in-a-string-using-python

반응형