매우 긴 목록 이해력을 어떻게 분리해야합니까?
[something_that_is_pretty_long for something_that_is_pretty_long in somethings_that_are_pretty_long]
나는 또한 사람들이 줄을 끊기 위해 ‘\’를 사용하는 것을 싫어하지만 그 이유를 이해하지 못하는 곳을 본 적이 있습니다. 그 이유는 무엇입니까?
답변
[x
for
x
in
(1,2,3)
]
잘 작동하므로 원하는대로 거의 할 수 있습니다. 나는 개인적으로 선호한다
[something_that_is_pretty_long
for something_that_is_pretty_long
in somethings_that_are_pretty_long]
\
그다지 높이 평가되지 않는 이유 는 그것이 눈에 띄지 않거나 추가 패딩이 필요한 라인 의 끝에 나타나기 때문입니다. 이는 라인 길이가 변경 될 때 수정해야합니다.
x = very_long_term \
+ even_longer_term_than_the_previous \
+ a_third_term
이러한 경우 괄호를 사용하십시오.
x = (very_long_term
+ even_longer_term_than_the_previous
+ a_third_term)
답변
나는 반대하지 않는다 :
variable = [something_that_is_pretty_long
for something_that_is_pretty_long
in somethings_that_are_pretty_long]
\
이 경우에는 필요하지 않습니다 . 일반적으로 나는 사람들 \
이 약간 못 생기기 때문에 피한다고 생각 하지만, 이것이 줄의 마지막 일이 아니라면 문제를 일으킬 수도 있습니다 (그 뒤에 공백이 없는지 확인하십시오). 줄 길이를 줄이려면 사용하지 않는 것보다 사용하는 것이 훨씬 낫다고 생각합니다.
\
위의 경우 나 괄호로 묶인 표현에서는 필요하지 않기 때문에 실제로 사용해야하는 경우도 매우 드뭅니다.
답변
여러 데이터 구조 목록을 처리하는 경우 여러 들여 쓰기를 사용할 수도 있습니다.
new_list = [
{
'attribute 1': a_very_long_item.attribute1,
'attribute 2': a_very_long_item.attribute2,
'list_attribute': [
{
'dict_key_1': attribute_item.attribute2,
'dict_key_2': attribute_item.attribute2
}
for attribute_item
in a_very_long_item.list_of_items
]
}
for a_very_long_item
in a_very_long_list
if a_very_long_item not in [some_other_long_item
for some_other_long_item
in some_other_long_list
]
]
if 문을 사용하여 다른 목록으로 필터링하는 방법에 주목하십시오. if 문을 자체 줄로 삭제하는 것도 유용합니다.