我如何更改下面的代码,以便Python读取两个变量中的列表,然后在不执行错误的情况下执行操作?我的代码:
bad = ['bad','terrible', 'dumb']
good = ['good','happy','awesome']
talk = raw_input("type:")
if (bad) in talk:
print "I'm sorry to hear that :("
elif (good) in talk:
print "That's good!"
答案 0 :(得分:6)
试试这个:
bad = set(['bad','terrible', 'dumb'])
good = set(['good','happy','awesome'])
talk = raw_input("type:")
if bad & set(talk.lower().split()):
print "I'm sorry to hear that :("
elif good & set(talk.lower().split()):
print "That's good!"
答案 1 :(得分:3)
这能满足您的需求吗?
bad = ['bad','terrible', 'dumb']
good = ['good','happy','awesome']
talk = raw_input("type:")
talk_list = talk.lower().split()
is_bad = any(w in bad for w in talk_list)
is_good = any(w in good for w in talk_list)
if is_bad:
print "I'm sorry to hear that :("
elif is_good:
print "That's good!"
答案 2 :(得分:0)
使用for循环并为'good'应用相同的逻辑。
for badStr in bad:
if badStr in talk:
print "I'm sorry to hear that :("
break
for goodStr in good:
if goodStr in talk:
print "That's good!"
break