比较Python3中的字符串和多个字符串

2024-06-02 09:33:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道变量中是否没有文本字符串。 然后比较是否有其他文本字符串。 变量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")

尤其是看到最优雅的方式。在


Tags: 字符串代码in文本forifanyvpn
3条回答

首先,最好传递生成器表达式而不是循环馈送的列表。在

第二,虽然有很多方法,但一个好的方法就是:

values = (internet, vpn, zetas)
if "?" in (v for v in values):
  print("No exist ?")

生成器表达式可以节省内存和时间,这对手边的脚本并不重要,但对于较大的数据块很有用。在

您可以选中value in listvalue 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")

我检查了您所查询的关于用引号括起来的问号是否会通过数组比较来逃避检测[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)

当比对结果打印出来时,它给出了:【真,真,真,真,真,假】。但是,如果有额外的引号,例如'"?"',则此比较将显示为False。(单引号中的项目与双引号的计算结果相同…)

请随意运行/重新分配值/测试等。(可能不是您想要的答案,但希望它能有所帮助)

相关问题 更多 >