列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。
它的结构是
- 在一个中括号里包含一个表达式、
- 然后是一个for语句、
- 然后是 0 个或多个 for 或者 if 语句。
返回结果:是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。
列表推导式的执行顺序:左边第二个语句是最外层for循环,依次往右进一层,左边第一条语句是最后一层。
注意:最先执行的应该是第一个for语句,然后是其他语句,不论它在推导式的左还是右
例如:
[1 if x in molecules_reference else 0 for x in smiles_mutated]
执行顺序应该是:
for x in smiles_mutated:
if x in molecules_reference:
print(1)
else:
print(0)
例如1:
[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]
他的执行顺序是:
for x in range(1,5)
if x > 2
for y in range(1,4)
if y < 3
x*y
例如2:
list = ["a", "b", "c", "d", "e", "f", "g", "h"]
batch = [item for sublist in list for item in sublist]
for sublist in list:
for item in sublist:
print(item)