我有關於理解的基本問題。 有類型的字典,其中值是列表的列表,它看起來像這樣:字典處理列表 - 可讀性和複雜性
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]))
有什麼金科玉律(如蟒蛇的禪宗)關於大小理解? 我該如何做得更好?先謝謝你。
我,對一個,我不迷戀*單行者*,有時他們有道理,有時他們沒有。可讀性應該是一個考慮因素。你明天會明白嗎? – wwii
請花時間閱讀[問]。 – wwii
的理解受制於79或119(根據偏好)列指南相同,如果你超過這個指標,我會考慮拆分它。 – Aaron