Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-设置交集未按预期工作_Python_Python 3.x_Set_Intersection - Fatal编程技术网

Python-设置交集未按预期工作

Python-设置交集未按预期工作,python,python-3.x,set,intersection,Python,Python 3.x,Set,Intersection,我定义了两个变量list和tuple,我试图找到它们的交集。在一个案例中,事情如我所料运行,但在第二个案例中,十字路口出现故障,我本以为它会通过。有人能为我指出显而易见的事情吗 鲍勃 您的第二个示例无法匹配,因为'APR,sigfevent'是一个字符串。Python不会拆分该字符串并为您检查字符串内容 设置交点要求元素之间相等,包容不是选项之一。换句话说,由于'APR'=='APR,SIGEVENT'不是真的,所以两个集合之间没有交集,即使'APR,SIGEVENT'中的'APR'是真的 您必

我定义了两个变量list和tuple,我试图找到它们的交集。在一个案例中,事情如我所料运行,但在第二个案例中,十字路口出现故障,我本以为它会通过。有人能为我指出显而易见的事情吗

鲍勃


您的第二个示例无法匹配,因为
'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'])