我想知道变量中是否没有文本字符串。
然后比较是否还有另一个文本字符串。
变量results
可以包含以下内容:是,否或?
我有以下代码:
internet = result1
vpn = result2
zetas = result3
values = [internet, vpn, zetas]
if any(v !== "?" for v in values):
print("No exist ?")
if any(v == "no" for v in values):
print("Exist a NO")
else:
print("Good")
尤其是看到最优雅的方式。
答案 0 :(得分:2)
您可以选中value in list
或value not in list
values = (internet, vpn, zetas)
if "?" not in values:
print("No exist ?")
if "no" in values:
print("Exist a NO")
else:
print("Good")
答案 1 :(得分:1)
首先,最好传递生成器表达式,而不是循环馈送列表。
第二,尽管可以有很多方法,但是一个好方法就是:
values = (internet, vpn, zetas)
if "?" in (v for v in values):
print("No exist ?")
生成器表达式可以节省内存和时间,这对于手头的脚本而言并不重要,但对更大的数据块很有用。
答案 2 :(得分:0)
我检查了您对反逗号中问号的查询是否可以使用数组比较[x in B for x in A]
#I assigned values to your variables to test
result1 ='?'
result2="no"
result3 = "yes"
internet = result1
vpn = result2
zetas = result3
#created an array with above values in it both in string format and as variable values (appended a number just for test)
A = [internet, 'no', '?', 'yes', vpn, zetas, '8']
#array of sample strings
B = ['?', 'no', 'yes']
exists = [x in B for x in A]
print (exists)
当打印比较结果时,它给出:[True,True,True,True,True,True,False]。但是,如果还有其他引号,例如'"?"'
上的比较结果打印为False。 (单引号中的项目与双引号中的项目相同。)
可以随意运行/重新分配值/测试等。 (可能不是您要找的答案,但希望对您有帮助)