2

为什么这项工作

for td in alltd:
    if "style3" in td["class"] or "style4" in td["class"] or "style1" in td["class"]:
        td["class"] = "s1"

这不是吗?

for td in alltd:
    if all(x in td["class"] for x in ("style3", "style4", "style1")):
        td["class"] = "s1"
4

2 回答 2

11

all([x1,x2,...])基本相同x1 and x2 and ...,不是x1 or x2 or ...

>>> all([True, True])
True
>>> all([True, False])
False

改为使用any()

>>> any([True,False])
True
于 2012-11-10T08:31:07.370 回答
6

any()如果您正在进行or基于比较,请使用:

`if any(x in td["class"] for x in ("style3", "style4", "style1")):`

任何(可迭代)的帮助:

如果可迭代的任何元素为真,则返回真。# 即or条件

所有(可迭代)的帮助:

如果迭代的所有元素都为真,则返回 True。# 即and条件

于 2012-11-10T08:30:46.370 回答