向“or”语句添加参数的更简单方法?

Nam*_*one 1 python multiple-conditions conditional-statements python-3.x

有没有一种更简单的方法可以执行以下操作而无需我写出来outputbodypixel == everytime?理想情况下,我想从列表中提取数据,我可以在其中添加#ebebeb, #ececec, #212121

if(outputbodypixel == "#356044" or outputbodypixel == "#22402b" or
   outputbodypixel == "#213f2c" or outputbodypixel == "#356043" or
   outputbodypixel == "#22402c" or outputbodypixel == "#346044"):
    output_body = "green"
elif(outputbodypixel == "#7c3d15" or outputbodypixel == "#493613" or
     outputbodypixel == "#4a3612" or outputbodypixel == "#6a553e" or
     outputbodypixel == "#785735" or outputbodypixel == "#5e4b37" or
     outputbodypixel == "#6a553e" or outputbodypixel == "#86623c" or
     outputbodypixel == "#8b4f0d" or outputbodypixel == "#7c3d14" or
     outputbodypixel == "#6a553d" or outputbodypixel == "#7c3d14" or
     outputbodypixel == "#6a553d" or outputbodypixel == "#7c3d14" or
     outputbodypixel == "#87623c" or outputbodypixel == "#6e3612" or
     outputbodypixel == "#87613c"):
    output_body = "brown"
elif(outputbodypixel == "#8b8b8a" or outputbodypixel == "#8b8b8b" or
     outputbodypixel == "#8b8a8b"):
    output_body = "silver"
else:
    output_body = "NOT DEFINED"
Run Code Online (Sandbox Code Playgroud)

我正在使用 Python 3.x。

Ósc*_*pez 5

只需使用每个条件的所有可能值的元组(或者列表,如果您已经为每种情况准备了一个列表),这与询问一个值是否是另一个值等in完全相同。outputbodypixeloror

if outputbodypixel in ("#356044", "#22402b", "#213f2c", "#356043", "#22402c", "#346044"):
    output_body = "green"
elif outputbodypixel in ("#7c3d15", "#493613", "#4a3612", "#6a553e", "#785735", "#5e4b37", "#6a553e", "#86623c", "#8b4f0d", "#7c3d14", "#6a553d", "#7c3d14", "#6a553d", "#7c3d14", "#87623c", "#6e3612", "#87613c"):
    output_body = "brown"
elif outputbodypixel in ("#8b8b8a", "#8b8b8b", "#8b8a8b"):
    output_body = "silver"
else:
    output_body = "NOT DEFINED"
Run Code Online (Sandbox Code Playgroud)