我正在解析JSON对象并找到了我理解的代码行代码,但希望得到更详细的解释:
for record in [x for x in records.split("\n") if x.strip() != '']:
我知道它正在拆分记录以通过新行字符获取单个记录但是我想知道为什么它看起来如此复杂?是不是我们不能拥有这样的事情:
for record in records.split("\n") if x.strip() != '']:
那么括号做什么[]?为什么我们在x for x in records.split....
由于
答案 0 :(得分:15)
"括号"在您的示例中,从旧的列表中构造一个新列表,这称为list comprehension。
[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
f(x)
可以是任何包含x
的表达式。
答案 1 :(得分:1)
这是一种列表理解,是一种在运行中创建具有特定条件的列表的简洁方法。
您可以将其缩写为:
a = []
for record in records.split("\n"):
if record.strip() != '':
a.append(record)
for record in a:
# do something
答案 2 :(得分:0)
方括号([])通常用Python表示一个列表。