python中for循环中的[]括号是什么意思?

Mo.*_*Mo. 9 python

我正在解析JSON对象,并找到了我理解的代码行代码,但希望得到更详细的解释:

for record in [x for x in records.split("\n") if x.strip() != '']:
Run Code Online (Sandbox Code Playgroud)

我知道它是拆分记录以通过新行字符获取单个记录但是我想知道为什么它看起来如此复杂?我们不能有这样的事情:

for record in records.split("\n") if x.strip() != '']:
Run Code Online (Sandbox Code Playgroud)

那么括号做什么[]?为什么我们有两次xx for x in records.split....

谢谢

fol*_*kol 19

示例中的"括号"构造了旧列表中的新列表,这称为列表推导.

基本思路[f(x) for x in xs if condition]是:

def list_comprehension(xs):
    result = []
    for x in xs:
        if condition:
            result.append(f(x))
    return result
Run Code Online (Sandbox Code Playgroud)

的f(x)可以是任何表达式,含有x或没有.