在 Python 中简化复杂列表理解的代码
Simplifying code of complex list comprehension in Python
假设 Python 中有字典列表 (lst_of_dcts
)。此外,假设我希望修改(例如,以 ASCII 编码)每个字典 dcts
中键值对 k:v
的每个值 v
。为此,我使用了列表理解,但代码行变得很长且难以阅读。
import unidecode
[{k: unidecode.unidecode(v.decode('utf-8')) for k, v in dct.items()} for dct in lst_of_dcts]
你如何将上面的列表理解拆分为更短、更易于阅读的行? (请注意,我并不是要简单地通过反斜杠等方式重新格式化这些行。)
Please note that I don't mean to simply reformat the lines via, for example, backward slashes.
为什么不呢?这正是我要做的,以使其更具可读性。正确缩进,当然是为了显示结构:
[{k: unidecode.unidecode(v.decode('utf-8'))
for k, v in dct.items()}
for dct in lst_of_dcts]
假设 Python 中有字典列表 (lst_of_dcts
)。此外,假设我希望修改(例如,以 ASCII 编码)每个字典 dcts
中键值对 k:v
的每个值 v
。为此,我使用了列表理解,但代码行变得很长且难以阅读。
import unidecode
[{k: unidecode.unidecode(v.decode('utf-8')) for k, v in dct.items()} for dct in lst_of_dcts]
你如何将上面的列表理解拆分为更短、更易于阅读的行? (请注意,我并不是要简单地通过反斜杠等方式重新格式化这些行。)
Please note that I don't mean to simply reformat the lines via, for example, backward slashes.
为什么不呢?这正是我要做的,以使其更具可读性。正确缩进,当然是为了显示结构:
[{k: unidecode.unidecode(v.decode('utf-8'))
for k, v in dct.items()}
for dct in lst_of_dcts]