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

python中for循环中的[]括号是什么意思?,python,Python,我正在解析JSON对象,发现了这行代码示例,我有点理解,但希望能对以下内容进行更详细的解释: for record in [x for x in records.split("\n") if x.strip() != '']: 我知道这是分裂的记录,以获得个人记录的新行字符,但我想知道为什么它看起来这么复杂?是不是我们不能有这样的东西: for record in records.split("\n") if x.strip() != '']: 那么括号的作用是什么[]?为什么我们在x记录中

我正在解析JSON对象,发现了这行代码示例,我有点理解,但希望能对以下内容进行更详细的解释:

for record in [x for x in records.split("\n") if x.strip() != '']:
我知道这是分裂的记录,以获得个人记录的新行字符,但我想知道为什么它看起来这么复杂?是不是我们不能有这样的东西:

for record in records.split("\n") if x.strip() != '']:
那么括号的作用是什么[]?为什么我们在
x记录中有x两次。拆分….


谢谢

这是一种列表理解,一种在特定条件下动态创建列表的简洁方法

您可以将其简化为以下内容:

a = []
for record in records.split("\n"):
    if record.strip() != '':
        a.append(record)

for record in a:
    # do something
示例中的“括号”从旧列表构造新列表,这称为

[f(x)表示x在xs if条件下]
的基本思想是:

def list_comprehension(xs):
    result = []
    for x in xs:
        if condition:
            result.append(f(x))
    return result

f(x)
可以是任何表达式,包含或不包含
x

方括号([])通常表示Python中的列表。

这是一个列表理解,请参阅相关内容:EdChum是对的(duh);请注意,这与循环无关。这种表示法是创建列表的一种简洁方法。一个循环也可以在列表上迭代。感谢你们两位的输入,顺便说一句,人们喜欢这里的向下投票问题。如果你打算否决一个问题,那么我认为你应该留下一条评论,说明原因。我认为这是一个有效的编程问题,我在其他任何地方都找不到,也不知道如何搜索。@Mo。请看:是的,它们表示一个列表,但还有什么?