나는 이해력에 대한 기본적인 질문이 있습니다. 값 목록입니다 dicts의 목록이있다, 그것은 다음과 같습니다 : 내가 필요로하는 모든 고유 동물 목록 유형 값에서 얻을 수 있습니다사전 목록 처리 - 가독성 및 복잡성
listionary = [{'path': ['/tmp/folder/cat/number/letter', '/tmp/folder/hog/char/number/letter', '/tmp/folder/hog/number/letter', '/etc'],
'mask': True,
'name': 'dict-1'},
{'path': ['/tmp/folder/dog/number-2/letter-4', '/tmp/folder/hog-00/char/number-1/letter-5', '/tmp/folder/cow/number-2/letter-3'],
'mask': True,
'name': 'dict-2'},
{'path': ['/tmp/folder/dog_111/number/letter', '/tmp/folder/ant/char/number/letter', '/tmp/folder/hen/number/letter'],
'mask': True,
'name': 'dict-3'}]
. 동물은 항상 tmp/폴더/과 다음 / 사이입니다. 내가 무슨 짓을 :
import re
flat_list = [item for sublist in [i['path'] for i in listionary] for item in sublist]
animals = list(set([re.search('folder/([a-z]+)', elem).group(1) for elem in flat_list if 'tmp' in elem]))
그것은 또한 하나 개의 라인으로 압축 될 수도 있지만 매우 복잡하고 읽을 수 :
animals = list(set([re.search('folder/([a-z]+)', elem).group(1) for elem in [item for sublist in [i['path'] for i in listionary] for item in sublist] if 'tmp' in elem]))
의 크기에 대한 황금 규칙 (예를 들어 파이썬의 선)이 있습니까 이해? 어떻게하면 더 좋게 만들 수 있습니까? 미리 감사드립니다.
I, 대한 하나, * 단 하나 강론 *에 매혹되지 않는다, 때때로 그들은 이해된다, 때때로 그렇지 않다.가독성을 고려해야합니다. 내일 이해 할거야? – wwii
시간을내어 [ask]를 읽으십시오. – wwii
지문은 동일한 79 또는 119 (기본 설정 기준) 열 지침의 적용을받으며이를 초과하여 시작하면 해독 할 수 있습니다. – Aaron