Python 子串匹配问题与或逻辑
Python substring matching question and or logic
我开始学习 Python 并使用以下逻辑编写一个小脚本,并且可以理解输出的原因或我得到的结果。
我有以下代码:
test = ['aa01', 'zz02', '01']
for element in test:
print(f'{element}')
if 'aa' or 'zz' in element:
print('Condition met')
else:
print('Condition not met')
我得到以下输出:
aa01
Condition met
zz02
Condition met
01
Condition met
加上这行代码:
if 'aa' or 'zz' in element:
我希望列表中的每个元素都查找子字符串匹配项('aa' 或 'zz'),然后在满足条件时打印。
根据输出,我不明白为什么第三个元素匹配这个没有两个子字符串的条件。
如果我执行以下代码:
'zz' in 'aa01'
False
和以下代码:
'zz' or 'aa' in 'aa'
'zz'
在这个阶段我不知道子字符串匹配是如何工作的,即 'aa' 中没有 'zz'。
是否返回 'zz' 不在 'aa' 中?
我也尝试了下面的代码,这也没有给我想要的结果,至少是我目前对 Python 的理解所期望的结果。
test = ['aa01', 'zz02', '01']
for element in test:
print(f'{element}')
if 'aa' in element:
print('Condition met')
if 'zz' in element:
print('Condition met')
else:
print('Condition not met')
这是我得到的输出:
aa01
Condition met
Condition not met
zz02
Condition met
01
Condition not met
那么上面的aa01是怎么显示Condition满足的同时又显示Condition不满足呢
我无法解释我所看到的行为。希望有人向我解释一下或指出一些相关信息。
非常感谢您的帮助。
那条线并没有像你想象的那样做。
当您写入 if this in that
时,它会检查 that
是否包含 this
。如果你只是写 if this:
那么它只是一个真实的检查,它总是 return 除了 ''
空字符串之外的字符串。
所以当你 运行 if this or that in those:
时,你实际上在做的是在同一行上询问 'if this' 和 'if that in those'。
要使该行按照您的预期进行,应该这样写:
if 'aa' in element or 'zz' in element:
... do something
我开始学习 Python 并使用以下逻辑编写一个小脚本,并且可以理解输出的原因或我得到的结果。 我有以下代码:
test = ['aa01', 'zz02', '01']
for element in test:
print(f'{element}')
if 'aa' or 'zz' in element:
print('Condition met')
else:
print('Condition not met')
我得到以下输出:
aa01
Condition met
zz02
Condition met
01
Condition met
加上这行代码:
if 'aa' or 'zz' in element:
我希望列表中的每个元素都查找子字符串匹配项('aa' 或 'zz'),然后在满足条件时打印。 根据输出,我不明白为什么第三个元素匹配这个没有两个子字符串的条件。
如果我执行以下代码:
'zz' in 'aa01'
False
和以下代码:
'zz' or 'aa' in 'aa'
'zz'
在这个阶段我不知道子字符串匹配是如何工作的,即 'aa' 中没有 'zz'。 是否返回 'zz' 不在 'aa' 中?
我也尝试了下面的代码,这也没有给我想要的结果,至少是我目前对 Python 的理解所期望的结果。
test = ['aa01', 'zz02', '01']
for element in test:
print(f'{element}')
if 'aa' in element:
print('Condition met')
if 'zz' in element:
print('Condition met')
else:
print('Condition not met')
这是我得到的输出:
aa01
Condition met
Condition not met
zz02
Condition met
01
Condition not met
那么上面的aa01是怎么显示Condition满足的同时又显示Condition不满足呢
我无法解释我所看到的行为。希望有人向我解释一下或指出一些相关信息。
非常感谢您的帮助。
那条线并没有像你想象的那样做。
当您写入 if this in that
时,它会检查 that
是否包含 this
。如果你只是写 if this:
那么它只是一个真实的检查,它总是 return 除了 ''
空字符串之外的字符串。
所以当你 运行 if this or that in those:
时,你实际上在做的是在同一行上询问 'if this' 和 'if that in those'。
要使该行按照您的预期进行,应该这样写:
if 'aa' in element or 'zz' in element:
... do something