或条件似乎在Python3中失败

时间:2017-08-24 12:42:08

标签: python python-3.x if-statement

我有一个很长的列表:

old_list = ['cat','dog','bat','cat',...]

我使用以下代码将整个列表复制到另一个列表中,并对某些特定条件进行了更改:

new_list = []
for item in old_list:
    if item == ("cat" or "bat"):
        new_list.append("a")
    elif item == "dog" or "fog" or "sog" or "log":
        new_list.append("o")
    else:
        new_list.append(item)

问题是在某些情况下" cat"和" bat"正确地替换为" a"但在某些情况下" cat"或者" bat"当我打印new_list

时,它仍然保持原样

我做错了什么?

2 个答案:

答案 0 :(得分:2)

使用

if item in {"dog", "fog", "sog", "log"}:
    ...

答案 1 :(得分:1)

这将解决您的问题

old_list = ['cat','dog','bat','cat']
new_list = []
for item in old_list:
    if item == "cat" or item=="bat":
        new_list.append("a")
    elif item == "dog" or item== "fog" or item=="sog" or item=="log":
        new_list.append("o")
    else:
        new_list.append(item)
print(new_list)