python 这个语句是什么意思呢

subtype_anno = [j for j in i[5].split(";") if not re.search("杂项综合", j)]

本人初学python,这个语句里for前面怎么还有变量,另外这句话执行什么功能,麻烦各位解惑

这是个列表解析式:subtype_anno = [j for j in i[5].split(";") if not re.search("杂项综合", j)]
其中for 前面的变量是指遍历得到的列表元素,而这个元素必须满足不含"杂项综合"的字段。

如有帮助,请点采纳。

这个是列表推导式
for前面的j是要添加到列表中的值,当if判断成立时j的值会添加到列表中
等同下面代码

subtype_anno = []
for j in i[5].split(";"):
    if not re.search("杂项综合", j):
        subtype_anno.append(j)  #这里的 j 就对应列表推导式中for前面的j

具体的可以参考

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

subtype_anno 是一个由循环产物 j 构成的列表
而这个循环 for j in i[5].split(";") if not re.search("杂项综合", j) 可以写成

subtype_anno  = []
for j in i[5].split(";"):
    if not re.search("杂项综合", j):
        subtype_anno .append(j)

采用这种写法可以使你的代码更简洁更快速

你可以搜下“列表生成式”相关的知识点就知道了,望采纳谢谢!