每日小知识:python列表解析

列表解析的语法为: [表达式 + 上下文]
直接举个例子
运行下列代码

print([x.lower() for x in ['I', 'AM', 'ROBOT']])
# 结果 ['i', 'am', 'robot']

这里表达式为 x.lower(), 上下文为 for x in ['I', 'AM', 'ROBOT']
这行代码所做的事情,就是把['I', 'AM', 'ROBOT']中的每一个元素变为小写。

再举个稍微复杂的例子

text = '''
It is said that the true nature of being is veiled. 
The labor of words, the expression of art, 
the seemingly ceaseless buzz that is human 
thought all have in common the need to get at what really is so. 
The hope to draw close to and possess the truth of being can be a feverish one. 
In some cases it can even be fatal, 
if pleasure is one's truth and its attainment more important than life itself. 
In other lives, though, the search for what is truthful gives life.
'''

w =  [[x for x in line.split() if len(x) > 3] for line in text.split('\n')]

# w为[[], ['said', 'that', 'true', 'nature', 'being', 'veiled.'], ['labor', 'words,', 'expression', 'art,'], ['seemingly', 'ceaseless', 'buzz', 'that', 'human'], ['thought', 'have', 'common', 'need', 'what', 'really'], ['hope', 'draw', 'close', 'possess', 'truth', 'being', 'feverish', 'one.'], ['some', 'cases', 'even', 'fatal,'], ['pleasure', "one's", 'truth', 'attainment', 'more', 'important', 'than', 'life', 'itself.'], ['other', 'lives,', 'though,', 'search', 'what', 'truthful', 'gives', 'life.'], []]

代码w = [[x for x in line.split() if len(x) > 3] for line in text.split('\n')]就是列表解析(有些地方也叫列表推导)
分析一下这行代码,它首先将text中的每一行分割开,然后内层的列表解析对每一行的代码再次按照空格分割,并加以条件判断,只有长度大于3的单词才被加入列表中。

posted @ 2022-03-12 19:47  yuzuki_n  阅读(142)  评论(0)    收藏  举报