我有形式的名单列表:如何在Python中重构四个缩进级别?
items = [["Wello \nWorld", "roboto.ttf", "rgb(0,0,0)"], ["StackOverflow is awesome", "roboto.ttf", "rgb(255,255,255)"]]
我想要做的就是去在每个list
...声明变量text
,font
,color
。之后,将文本分成若干行,如果其上有\n
个字符,然后将这些行分隔成单词以便与它们进行一些处理。
下面是我用来实现这个目标的代码。
def wrap(self, size):
for section in sections:
for text, font, color in section:
for line in text.splitlines():
for word in line:
pass
我知道这个功能是错误的。如果没有错,那么这个世界就是错的。这种缩进程度看起来很丑陋,真的希望你们能帮助我以另一种方式来表达。或者,也许数据是错误的 - 结构?
一件事:
平优于嵌套:
我从The Zen of Python读取。
这是否适用于我的问题?我敢打赌,但是我在Google Groups上阅读了一些内容,并且在提到时,人们倾向于引用Python程序包和继承层次结构。Flat比嵌套要好。
通常,当我看到深层嵌套的代码块时,首先要做的是查看是否有任何这些块可以作为逻辑单元移动到单独的函数中。你的'wrap()'函数似乎做了很多。 'sections'循环的主体可能被移动到'process_section()'函数中。我会考虑把生产线移到它自己独立的功能上。 –
您显示的'items'似乎对应于代码中的'section',因此您的示例数据缺少代码反映的嵌套级别。你的字符串也是字符串的编码列表,占其他额外的级别。您的代码将与您要分析的数据一样嵌套。 – chepner