for _ in range(n)를 한번쯤은 마주쳤을 것이다. 이때 __은 변수를 의미한다.
for _ in range(n) 구문에서 밑줄 문자(__)은 루프 "변수"로 사용될 것이라는 관례적인 표현이며 일반적으로 반복문에서 루프 변수로 사용하지 않는 경우에 사용된다.
즉, 반복 횟수가 중요하지만 실제로 변수 값이 사용되지 않는 경우이용한다.
이는 python 뿐만아니라 c++등에서도 이용 가능하다.
주로 어떤 쓰임에서 사용되냐면 루프 변수를 사용하지 않을 때 밑줄을 사용하여 해당 변수를 무시할 수 있다.
다음 예시를 보며 이해해보자
my_list = [1, 2, 3, 4, 5]
for _ in my_list:
print("Hello")

my_list = [0, 0, 0, 0, 0,0]
for _ in my_list:
print("Hello")

다음과 같이 hello가 5번이 출력이 되나 이는 mylist안에 있는 list의 값을 사용한 것이 아닌 리스트의 값 갯수 만큼 hello를 출력한다.
앞서 말했듯 for 루프에서 는 일반적으로 루프에서 사용되지 않는 변수를 나타내는데 사용됩니다. 이러한 경우, 코드에서 불필요한 변수를 생성하지 않고도 루프를 실행할 수 있다.
그러면 이러한 것이 속도에 영향을 줄까?
답은 아니다.
_ 대신 i를 사용하는 것과 속도 차이는 없다.
for i in range(n)과 for in range(n) 모두 루프를 동일하게 실행한다. for in range(n) 또는 for i in range(n) 모두 루프를 동일하게 실행하며 변수값이 어떻게 변화가 되던 속도에는 변화를 주지는 않는다.
다만 '_'는 변수 이름으로 흔히 사용되는 것이 아니기 때문에, 코드를 읽는 사람들에게 의미가 덜 명확할 수 있다. 일반적으로 루프 변수를 나타내는 데 사용되는 변수 이름인 i, j, k 등이 더 좋은 선택이기도하다.