Python-设置交集未按预期工作
我定义了两个变量list和tuple,我试图找到它们的交集。在一个案例中,事情如我所料运行,但在第二个案例中,十字路口出现故障,我本以为它会通过。有人能为我指出显而易见的事情吗 鲍勃Python-设置交集未按预期工作,python,python-3.x,set,intersection,Python,Python 3.x,Set,Intersection,我定义了两个变量list和tuple,我试图找到它们的交集。在一个案例中,事情如我所料运行,但在第二个案例中,十字路口出现故障,我本以为它会通过。有人能为我指出显而易见的事情吗 鲍勃 您的第二个示例无法匹配,因为'APR,sigfevent'是一个字符串。Python不会拆分该字符串并为您检查字符串内容 设置交点要求元素之间相等,包容不是选项之一。换句话说,由于'APR'=='APR,SIGEVENT'不是真的,所以两个集合之间没有交集,即使'APR,SIGEVENT'中的'APR'是真的 您必
您的第二个示例无法匹配,因为
'APR,sigfevent'
是一个字符串。Python不会拆分该字符串并为您检查字符串内容
设置交点要求元素之间相等,包容不是选项之一。换句话说,由于'APR'=='APR,SIGEVENT'
不是真的,所以两个集合之间没有交集,即使'APR,SIGEVENT'中的'APR'是真的
您必须将a
拆分为单独的字符串:
a = ['APR, SIGEVENT']
b = ('*', 'APR', 'Line')
if set(el.strip() for substr in a for el in substr.split(',')).intersection(b):
# intersection between text in a and elements in b
这假设您确实想在a
中测试逗号分隔字符串中的元素
请注意,对于交叉点测试,将生成的交叉点集强制转换回列表是相当过分的
演示:
您的第二个示例无法匹配,因为'APR,sigfevent'
是一个字符串。Python不会拆分该字符串并为您检查字符串内容
设置交点要求元素之间相等,包容不是选项之一。换句话说,由于'APR'=='APR,SIGEVENT'
不是真的,所以两个集合之间没有交集,即使'APR,SIGEVENT'
中的'APR'是真的
您必须将a
拆分为单独的字符串:
a = ['APR, SIGEVENT']
b = ('*', 'APR', 'Line')
if set(el.strip() for substr in a for el in substr.split(',')).intersection(b):
# intersection between text in a and elements in b
这假设您确实想在a
中测试逗号分隔字符串中的元素
请注意,对于交叉点测试,将生成的交叉点集强制转换回列表是相当过分的
演示:
很明显,我很抱歉。谢谢你,很明显…我很抱歉。非常感谢。
>>> a = ['APR, SIGEVENT']
>>> b = ('*', 'APR', 'Line')
>>> set(el.strip() for substr in a for el in substr.split(',')).intersection(b)
set(['APR'])