답변:
주요 이점은 여러 줄 목록을 쉽게 편집 할 수있게하고 난이도를 정리하는 것입니다.
바꾸다:
s = ['manny',
'mo',
'jack',
]
에:
s = ['manny',
'mo',
'jack',
'roger',
]
diff의 한 줄 변경 만 포함합니다.
s = ['manny',
'mo',
'jack',
+ 'roger',
]
후행 쉼표를 생략하면 더 혼란스러운 여러 줄 diff를 이깁니다.
s = ['manny',
'mo',
- 'jack'
+ 'jack',
+ 'roger'
]
후자의 diff는 한 줄만 추가되었고 다른 줄은 내용을 변경하지 않았 음을 확인하기 어렵게 만듭니다.
또한 이렇게 할 위험을 줄입니다.
s = ['manny',
'mo',
'jack'
'roger' # Added this line, but forgot to add a comma on the previous line
]
암시 적 문자열 리터럴 연결을 트리거 s = ['manny', 'mo', 'jackroger']
하여 의도 한 결과 대신 생성 합니다.
List = "[" {Item ","} "]".
vs.List = "[" ({Item","}Item|)"]".
"\"item\","
각 항목을 인쇄 "\"item\""
한 다음 ","
마지막 항목을 제외한 모든 항목 을 인쇄 하는 것보다 각 항목을 인쇄 하는 것이 훨씬 쉽습니다 .
특정 종류의 버그를 제거하는 데 도움이됩니다. 여러 줄에 목록을 작성하는 것이 더 분명한 경우가 있습니다. 그러나 나중에 유지 관리하면 항목을 다시 정렬 할 수 있습니다.
l1 = [
1,
2,
3,
4,
5
]
# Now you want to rearrange
l1 = [
1,
2,
3,
5
4,
]
# Now you have an error
그러나 후행 쉼표를 허용하고 사용하면 오류없이 줄을 쉽게 재정렬 할 수 있습니다.
튜플은 ('a')
암시 적 연속 및 ()
s를 선행 연산자로 사용하여 확장 되는 반면 ('a',)
길이 1 튜플을 참조 하므로 다릅니다 .
원래 예는 tuple('a')
('a'),
문자열입니다. 그러나 내 요점은 튜플의 후행 쉼표가 중요하지만 목록에서 아직 파이썬이 허용하지 않는 것으로 보입니다.
tuple('a')
일반적으로하기 때문에, 아마 나쁜 예이다 tuple(x)
와 (x,)
같은 것이 아니다. tuple('ab') != ('ab',)
. 길이가 1 인 문자열 tuple('a') == ('a',)
이기 때문에 'a'
.
>>> ("a",) == ("a")
False >>> ("ab",) == ("ab")
False >>> ("ab", "bc",) == ("ab", "bc")
True