将字符串中的短语存储到列表中

时间:2017-11-08 20:51:12

标签: python list

我发现这段代码完全符合预期,但我很困惑为什么。

这个想法是从每一行提取信息(没有空格或额外的制表符号)。

我找到的代码如下:

def extract_information(line: str) -> list:

return [phrase.strip() for phrase in line.split('  ') if phrase]

它有效!但由于它是一个单行,我很难尝试破译它,我习惯于完全写出循环。

Ie.

print(extract_information("Marni             FIGHTS FOR LIFE           Old Shack            Will rule the kingdom"))

应该成为:

['Marni', 'FIGHTS FOR LIFE', 'Old Shack', 'Will rule the kingdom']

任何人都有这方面的线索吗?

2 个答案:

答案 0 :(得分:0)

Python支持名为列表理解的内容。

<强>摘要

  

它由包含表达式后跟for的括号组成   条款,然后零或更多for或if子句。表达式可以是   任何东西,意味着你可以在列表中放入各种对象。

幕后花絮

因此,您可以这样阅读上述表达式:

[return something for something in listofsomethings if something exists ]

请注意,上述表达仅用于教育目的,并且无论如何都无效。

因此,在您的特定情况下,它可以转换为:

for phrase in line.split('  '):
    if phrase:
        phrase.strip()

正如您所看到的,它完全符合您的预期。两者都完全相同,但列表理解通常被认为是更加pythonic。

答案 1 :(得分:-2)

这是列表理解。运行这样简单的东西,看看它是如何工作的。它基本上是一种以简洁方式循环遍历列表的方法。

x=[1,2,3,4,5,6]
y=[a*2 for a in x]
相关问题