복붙노트

[PYTHON] 후행 쉼표가 목록에서 허용되는 이유는 무엇입니까?

PYTHON

후행 쉼표가 목록에서 허용되는 이유는 무엇입니까?

나는 왜 파이썬에서 목록에있는 후행 쉼표가 유효한 구문인지 궁금하다. 파이썬이 단순히 그것을 무시하는 것 같다.

>>> ['a','b',]
['a', 'b']

( 'a')와 ( 'a',)가 두 개의 다른 것들이지만 목록에서 하나의 튜플 일 때 그것은 의미가 있습니까?

해결법

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

    1.주요 이점은 여러 줄 목록을 쉽게 편집 할 수 있고 diff에서 혼란을 줄일 수 있다는 것입니다.

    주요 이점은 여러 줄 목록을 쉽게 편집 할 수 있고 diff에서 혼란을 줄일 수 있다는 것입니다.

    작고 보기 흉한 사람:

    s = ['manny',
         'mo',
         'jack',
    ]
    

    에:

    s = ['manny',
         'mo',
         'jack',
         'roger',
    ]
    

    diff에서 단 한 줄만 변경하면됩니다.

      s = ['manny',
           'mo',
           'jack',
    +      'roger',
      ]
    

    후행 쉼표가 생략되었을 때 이것은 더 복잡한 다중 행 diff보다 우수합니다.

      s = ['manny',
           'mo',
    -      'jack'
    +      'jack',
    +      'roger'
      ]
    

    후자의 차이점은 한 행만 추가되었고 다른 행은 내용을 변경하지 못하게하는 것을 어렵게 만듭니다.

    또한 이렇게하는 위험을 줄입니다.

    s = ['manny',
         'mo',
         'jack'
         'roger'  # Added this line, but forgot to add a comma on the previous line
    ]
    

    암시 적 문자열 리터럴 연결을 트리거하여 원하는 결과 대신 s = [ 'manny', 'mo', 'jackroger']를 생성합니다.

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

    2.배열에서 후행 쉼표를 허용하는 일반적인 구문 규칙이며 C 및 Java와 같은 언어에서 허용되며 Python은이 목록을 해당 목록 데이터 구조로 채택한 것으로 보입니다. 목록을 채우기위한 코드를 생성 할 때 특히 유용합니다. 요소 및 쉼표 시퀀스를 생성합니다. 마지막에 쉼표가 없어야하는 특별한 경우를 고려하지 않아도됩니다.

    배열에서 후행 쉼표를 허용하는 일반적인 구문 규칙이며 C 및 Java와 같은 언어에서 허용되며 Python은이 목록을 해당 목록 데이터 구조로 채택한 것으로 보입니다. 목록을 채우기위한 코드를 생성 할 때 특히 유용합니다. 요소 및 쉼표 시퀀스를 생성합니다. 마지막에 쉼표가 없어야하는 특별한 경우를 고려하지 않아도됩니다.

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

    3.특정 종류의 버그를 제거하는 데 도움이됩니다. 때때로 여러 줄에 목록을 쓰는 것이 더 명확합니다. 그러나 나중에, 당신은 항목을 재정렬 할 수 있습니다.

    특정 종류의 버그를 제거하는 데 도움이됩니다. 때때로 여러 줄에 목록을 쓰는 것이 더 명확합니다. 그러나 나중에, 당신은 항목을 재정렬 할 수 있습니다.

    l1 = [
            1,
            2,
            3,
            4,
            5
    ]
    
    # Now you want to rearrange
    
    l1 = [
            1,
            2,
            3,
            5
            4,
    ]
    
    # Now you have an error
    

    그러나 후행 쉼표를 허용하고이를 사용하면 오류가 발생하지 않고 쉽게 행을 다시 정렬 할 수 있습니다.

  4. ==============================

    4.( 'a')가 길이 1 튜플을 참조하는 반면, ( 'a')는 암시 적 연속과 ()를 우선 처리 연산자로 사용하여 확장되기 때문에 튜플이 다릅니다.

    ( 'a')가 길이 1 튜플을 참조하는 반면, ( 'a')는 암시 적 연속과 ()를 우선 처리 연산자로 사용하여 확장되기 때문에 튜플이 다릅니다.

    원래 예제는 튜플 ( 'a')이었을 것입니다.

  5. ==============================

    5.주된 이유는 diff를 덜 복잡하게 만드는 것입니다. 예를 들어 목록이 있습니다.

    주된 이유는 diff를 덜 복잡하게 만드는 것입니다. 예를 들어 목록이 있습니다.

    list = [
        'a',
        'b',
        'c'
    ]
    

    다른 요소를 추가하려고합니다. 다음 당신은 이것을 끝낼 것이다 :

    list = [
        'a',
        'b',
        'c',
        'd'
    ]
    

    따라서 diff는 두 줄이 바뀌 었음을 보여주고, 'c'와 함께 ','를 추가하고 마지막 줄에 'd'를 추가합니다.

    그래서 파이썬은 혼란을 야기 할 수있는 여분의 diff를 막기 위해리스트의 마지막 요소에 ','를 덧붙일 수 있습니다.

  6. from https://stackoverflow.com/questions/11597901/why-are-trailing-commas-allowed-in-a-list by cc-by-sa and MIT license