복붙노트

[PYTHON] 동일한 bool 값으로 목록 초기화

PYTHON

동일한 bool 값으로 목록 초기화

루프없이 모든 목록 값을 일부 bool로 초기화 할 수 있습니까? 예를 들어 N 개의 요소 목록을 모두 False로 지정하려고합니다.

해결법

  1. ==============================

    1.당신은 이렇게 할 수 있습니다 : -

    당신은 이렇게 할 수 있습니다 : -

    >>> [False] * 10
    [False, False, False, False, False, False, False, False, False, False]
    

    노트: - 같은 값을 가진 변경 가능한 타입의리스트로 절대 절대로해서는 안된다. 그렇지 않다면 다음 예제와 같은 놀라운 동작을 보게 될 것이다 :

    >>> my_list = [[10]] * 3
    >>> my_list
    [[10], [10], [10]]
    >>> my_list[0][0] = 5
    >>> my_list
    [[5], [5], [5]]
    

    보시다시피 하나의 내부 목록에서 변경 한 내용이 모두 내부 목록에 반영됩니다.

  2. ==============================

    2.

        my_list = [False for i in range(n)]
    

    이렇게하면 개별 요소가 개별적으로 작성되므로 개별 요소를 변경할 수 있습니다.

    이것은 기술적으로 루프입니다.

  3. ==============================

    3.공간이 중요한 경우 bytearray가 더 나은 선택입니다. 부울 솔루션 목록보다 약 5 배 더 효율적입니다.

    공간이 중요한 경우 bytearray가 더 나은 선택입니다. 부울 솔루션 목록보다 약 5 배 더 효율적입니다.

    이것은 0으로 초기화 된 N 개의 값 배열을 만듭니다.

    B = bytearray(N)
    
  4. from https://stackoverflow.com/questions/13382774/initialize-list-with-same-bool-value by cc-by-sa and MIT license