我正在尝试制作一个if语句,但我意识到我需要在每个可能的安排中测试字符串。那我该怎么做呢。
这是我的代码
string = ("red blue black")
if string == "red blue black":
print("cool")
答案 0 :(得分:0)
如果我正确理解了您的目标,您希望创建一个if
语句,创建string
变量的所有排列,然后测试您的"字符串"在任何这些安排中。
列表的所有排列都是"排列",因此您可以使用Windows batch assign output of a program to a variable的排列:
import itertools
string = ("red blue black")
all_arrangements = list(itertools.permutations(string.split()))
if string in [' '.join(i) for i in all_arrangements]:
print "cool"
由于安排是根据您的字符串生成的,因此您可以期望您的if语句得到满足,并且" cool"将永远打印,除非您进一步更改if
声明的逻辑。
为了更好地解释上面代码中的内容,您可以使用以下代码替换上面的if
语句块,并确认字符串的哪种排列匹配:
print "checking for ", string
for arrangement in all_arrangements:
if string == ' '.join(arrangement):
print arrangement , "cool"
else:
print arrangement
输出:
checking for red blue black
('red', 'blue', 'black') cool
('red', 'black', 'blue')
('blue', 'red', 'black')
('blue', 'black', 'red')
('black', 'red', 'blue')
('black', 'blue', 'red')
希望这有帮助。