gpt4 book ai didi

python - Python 中的子字符串搜索

转载 作者:行者123 更新时间:2023-11-30 22:42:44 26 4
gpt4 key购买 nike

我想了解以下语句的工作原理:

if ("ssh" or "telnet") in connection_type:
...

这似乎工作类似于:

if any(substr in connection_type for substr in ["ssh", "telnet"]):
...

这两种说法有什么区别吗?谢谢!

最佳答案

是的,有区别。

第一个似乎有效,但没有。

>>> connection_type = 'ssh'
>>> ("ssh" or "telnet") in connection_type
True

>>> connection_type = 'telnet'
>>> ("ssh" or "telnet") in connection_type
False

这是为什么呢? Python 中的 or 运算符返回操作数中的第一个 True 值,如果所有操作数的计算结果均为 False,则返回最后一个值 - 这就是它的原因仅适用于“ssh”。您可以将 or 想象成其他语言的三元运算符:

first or second

就像:

bool(first) ? first : second

第二个是对的。

如果connection_type是整个单词“telnet”或“ssh”,您还可以这样做:

if connection_type in ('ssh', 'telnet'):
...

如果“telnet”或“ssh”只是connection_type的子字符串,您还可以使用正则表达式:

if re.search(r'ssh|telnet', connection_type):
...

关于python - Python 中的子字符串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42030601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com