2024-09-28 22:03:34 发布
网友
我正在尝试循环一个数组,跳过sertain产品类型。我的问题是它没有跳过它们。无论产品类型是否在跳过列表中,都会发生相同的情况。你知道吗
for i in source: if (i["product_type"] == 00 and i["product_type"] == 35 and i["product_type"] == 72): print i["product_name"] + " has been skipped" else: # Upload product
你应该or把它们放在一起而不是and,因为i["product_type"]只能有一个值,我假设这只是一个打字错误。你知道吗
or
and
i["product_type"]
if (i["product_type"] == 0 or i["product_type"] == 35 or i["product_type"] == 72):
但是,使用以下命令更简单、更简洁
if i["product_type"] in (0, 35, 72):
这里的问题是,你不可能在一个语句中包含所有这些条件。对于同一属性,一个项不能有多个值。您的变量i只有一个product_type属性,因此您实际上要寻找的是一种针对以下任何一个选项进行测试的方法:
i
product_type
if i["product_type"] == 0 or i["product_type"] == 35 or i["product_type"] == 72: #
您希望使用or运算符而不是and运算符。你知道吗
下面是一个可读性更好的代码版本(假设产品类型值为int:
if i["product_type"] in [ 0, 35, 72 ]: print i["product_name"] + " has been skipped" else: # Upload product
此代码将检查列表中是否引用了product_type值:[ "00", "35", "72" ]。你知道吗
[ "00", "35", "72" ]
最后一点,您不需要用parethesis包装您的条件语句(例如使用JS/PHP)。您可以省略它们:
if "foo" in [ "foo" ]: pass
工作原理与
if ("foo" in [ "foo" ]): pass
你应该
or
把它们放在一起而不是and
,因为i["product_type"]
只能有一个值,我假设这只是一个打字错误。你知道吗但是,使用以下命令更简单、更简洁
这里的问题是,你不可能在一个语句中包含所有这些条件。对于同一属性,一个项不能有多个值。您的变量
i
只有一个product_type
属性,因此您实际上要寻找的是一种针对以下任何一个选项进行测试的方法:您希望使用
or
运算符而不是and
运算符。你知道吗下面是一个可读性更好的代码版本(假设产品类型值为int:
此代码将检查列表中是否引用了
product_type
值:[ "00", "35", "72" ]
。你知道吗最后一点,您不需要用parethesis包装您的条件语句(例如使用JS/PHP)。您可以省略它们:
工作原理与
相关问题 更多 >
编程相关推荐