C ++에서는 다음 std::string
과 같이 반복 할 수 있습니다 .
std::string str = "Hello World!";
for (int i = 0; i < str.length(); ++i)
{
std::cout << str[i] << std::endl;
}
파이썬에서 문자열을 어떻게 반복합니까?
답변
요하네스가 지적했듯이
for c in "string":
#do something with c
for loop
구문을 사용하여 파이썬에서 거의 모든 것을 반복 할 수 있습니다 .
예를 들어, open("file.txt")
파일 객체를 반환하고 파일을 열고 해당 파일의 행을 반복하여 반복합니다.
with open(filename) as f:
for line in f:
# do something with line
그것이 마술처럼 보인다면, 그것은 다소 있지만, 그 배후의 아이디어는 정말 간단합니다.
for
루프가 작동 하도록 모든 종류의 객체에 적용 할 수있는 간단한 반복자 프로토콜이 있습니다 .
next()
메소드 를 정의하는 반복자를 구현 __iter__
하고 클래스에서 메소드를 구현하여 반복 가능하게하십시오. ( __iter__
물론 반복자 객체, 즉을 정의하는 객체를 반환해야 함 next()
)
답변
문자열을 반복 할 때 색인에 액세스해야하는 경우 다음을 사용하십시오 enumerate()
.
>>> for i, c in enumerate('test'):
... print i, c
...
0 t
1 e
2 s
3 t
답변
더 쉬운 방법 :
for c in "test":
print c
답변
좀 더 포괄적 인 대답을하기 위해, 사각 페그를 둥근 구멍에 강제로 밀어 넣고 싶다면 문자열을 반복하는 C 방식을 파이썬에 적용 할 수 있습니다.
i = 0
while i < len(str):
print str[i]
i += 1
그러나 다시 말하지만 문자열이 본질적으로 반복 가능한 경우 왜 그렇게됩니까?
for i in str:
print i
답변
글쎄 당신은 또한 이와 같은 흥미로운 일을 할 수 있고 for 루프를 사용하여 일을 할 수 있습니다
#suppose you have variable name
name = "Mr.Suryaa"
for index in range ( len ( name ) ):
print ( name[index] ) #just like c and c++
대답은
씨 . 수리아
그러나 range ()는 시퀀스 값 목록을 생성하므로 직접 이름을 사용할 수 있습니다
for e in name:
print(e)
이것은 동일한 결과를 생성하고 더 좋아 보이고 목록, 튜플 및 사전과 같은 모든 시퀀스에서 작동합니다.
우리는 내장 함수 (Python Community의 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 값을 반환합니다.
답변
여기에 몇 가지 대답이 사용 range
됩니다. xrange
일반적으로 완전히 인스턴스화 된 목록보다는 생성기를 반환하므로 더 좋습니다. 다양한 길이의 메모리 및 / 또는 반복 가능한 문제 xrange
가 문제가 될 수있는 경우 에 우수합니다.