[python] for 루프에서 사용하지 않는 변수를 선언하는 방법은 무엇입니까?

다음과 같은 목록 이해력 (예 :)이있는 경우 :

['' for x in myList]

목록의 모든 요소에 대해 빈 문자열이있는 새 목록을 효과적으로 만들려면 x. 사용하지 않는 x변수 를 선언 할 필요가 없도록 이것을 작성하는 더 깨끗한 방법이 있습니까?



답변

_ for 루프 및 튜플 할당에서 무시 된 멤버의 표준 자리 표시 자 이름입니다. 예 :

['' for _ in myList]

[a+d for a, _, _, d, _ in fiveTuples]

BTW 목록은 목록 이해없이 작성 될 수 있습니다 (문자열, 정수 등과 같은 불변 멤버 목록을 만들고 싶다고 가정).

[''] * len(myList)


답변

아니요. Zen이 말했듯이 특별한 경우는 규칙을 위반할만큼 특별하지 않습니다. 반복되는 항목의 항목을 사용하지 않는 루프와 압축을 풀 “대상”이 있다는 규칙이 특별한 경우입니다.

그러나 _일반적으로 “의도적으로 사용되지 않은”것으로 이해되는 변수 이름으로 사용할 수 있습니다 (PyLint 등도이를 알고 존중합니다).


답변

그것은 사용 밝혀 dummy*변수 이름과 같은 트릭 마찬가지로 (시작 워드 더미이다) _. _알려진 표준이며 의미있는 변수 이름을 사용하는 것이 좋습니다. 당신이 사용할 수 있도록 dummy, dummy1, dummy_anything. 이러한 변수 이름을 사용하면 PyLint불평하지 않습니다.


답변

같은 줄의 for 루프 뒤에 다음 주석을 추가합니다.

#pylint : disable = unused-variable

for i in range(100): #pylint: disable=unused-variable


답변

인수의 이름을 지정해야하는 경우 (예 : 이름으로 참조되는 특정 인수를 사용하지 않는 모의를 작성할 때) 다음 단축 메서드를 추가 할 수 있습니다.

def UnusedArgument(_):
  pass

다음과 같이 사용하십시오

def SomeMethod(name_should_remain):
  UnusedArgument(name_should_remain)


답변

생성기 객체는 실제로 변수를 사용하지 않습니다. 그래서 뭔가

list(('' for x in myList))

트릭을해야합니다. x는 생성기 이해도 외부의 변수로 정의되지 않습니다.


답변

_변수에 사람이 읽을 수있는 이름을 지정하려는 경우 변수 이름 앞에 추가 할 수도 있습니다 . 예를 들어, 당신은 사용할 수 있습니다 _foo, _foo1, _anything및 PyLint 불평하지 않습니다. for 루프에서는 다음과 같습니다.

for _something in range(10):
    do_something_else()

편집 : 예제 추가