'in' 在 Python 中有多灵活,例如如果 'xxx' 在 yyy 中:
How flexible is 'in' in Python e.g. if 'xxx' in yyy:
两者之间是否存在有意义的区别:
z='xxx'
if z in ['xxx', 'yyy']:
if 'xxx' or 'yyy' in z:
'in' 是否允许部分和拆分字符串匹配?
if 'xx yy' in 'xx zz yy':
我花了一整天的时间寻找错误,归结为以上内容。否则代码是逐行相同的。最糟糕的是这两个脚本都有效,我只是花了很多时间来整合它们。其他人关于 legacy/partial 数据的遗留代码,文档有限。我最后修好了,但这些都是我挥之不去的问题。
欢迎崩溃
是的,有一个有意义的区别
z='xxx'
z in ['xxx', 'yyy']
正在检查列表是否包含 'xxx' 它包含
if 'xxx' or 'yyy' in z:
将始终 return 为真,因为非空字符串为真; IE
if ('xxx'):
为真
您可以更明确地重写为
if 'xxx' or ('yyy' in z):
我相信你要找的更像这样:
if any([i in z for i in ['xxx', 'yyy']):
检查 'xxx' 或 'yyy' 是否在 z
中
FWIW;还有:
if all([i in z for i in ['xxx', 'yyy']):
关于你的问题
if 'xx yy' in 'xx zz yy':
那只会检查确切的字符串文字;如果您想同时查找 xx
或 yy
,有多种方法可以处理它,但我可能会将第一个字符串转换为列表并检查如下元素:
if all([i in 'xx zz yy' for i in 'xx yy'.split(" ")]):
与
相同
if all([i in 'xx zz yy' for i in ['xx', 'yy']):
两者之间是否存在有意义的区别:
z='xxx'
if z in ['xxx', 'yyy']:
if 'xxx' or 'yyy' in z:
'in' 是否允许部分和拆分字符串匹配?
if 'xx yy' in 'xx zz yy':
我花了一整天的时间寻找错误,归结为以上内容。否则代码是逐行相同的。最糟糕的是这两个脚本都有效,我只是花了很多时间来整合它们。其他人关于 legacy/partial 数据的遗留代码,文档有限。我最后修好了,但这些都是我挥之不去的问题。
欢迎崩溃
是的,有一个有意义的区别
z='xxx'
z in ['xxx', 'yyy']
正在检查列表是否包含 'xxx' 它包含
if 'xxx' or 'yyy' in z:
将始终 return 为真,因为非空字符串为真; IE
if ('xxx'):
为真
您可以更明确地重写为
if 'xxx' or ('yyy' in z):
我相信你要找的更像这样:
if any([i in z for i in ['xxx', 'yyy']):
检查 'xxx' 或 'yyy' 是否在 z
中FWIW;还有:
if all([i in z for i in ['xxx', 'yyy']):
关于你的问题
if 'xx yy' in 'xx zz yy':
那只会检查确切的字符串文字;如果您想同时查找 xx
或 yy
,有多种方法可以处理它,但我可能会将第一个字符串转换为列表并检查如下元素:
if all([i in 'xx zz yy' for i in 'xx yy'.split(" ")]):
与
相同if all([i in 'xx zz yy' for i in ['xx', 'yy']):