Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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 从Frozenset检索元素/Frozenset的替代项_Python_Algorithm_Set_Apriori_Frozenset - Fatal编程技术网

Python 从Frozenset检索元素/Frozenset的替代项

Python 从Frozenset检索元素/Frozenset的替代项,python,algorithm,set,apriori,frozenset,Python,Algorithm,Set,Apriori,Frozenset,我的frozenset输出如下所示: 下面的数据只是一个例子。总的来说,我希望数据采用以下格式: OUTPUT A FRO11987 FRO12685 0.4325 FRO11987 ELE11375 0.4225 FRO11987 GRO94758 0.4125 FRO11987 SNA80192 0.4025 FRO11987 FRO18919 0.4015 OUTPUT B FRO11987 FRO12685 DAI95741 0.4325 FRO11987 ELE11375 GRO734

我的frozenset输出如下所示:

下面的数据只是一个例子。总的来说,我希望数据采用以下格式:

OUTPUT A
FRO11987 FRO12685 0.4325
FRO11987 ELE11375 0.4225
FRO11987 GRO94758 0.4125
FRO11987 SNA80192 0.4025
FRO11987 FRO18919 0.4015
OUTPUT B
FRO11987 FRO12685 DAI95741 0.4325
FRO11987 ELE11375 GRO73461 0.4225
FRO11987 GRO94758 ELE26917 0.4125
FRO11987 SNA80192 ELE28189 0.4025
FRO11987 FRO18919 GRO68850 0.4015
双打:

项目信心

对于三元组:

项目信心

双打:

[(frozenset({'GRO73461'}), frozenset({'ELE17451'}), 1.0), (frozenset({'ELE26917'}), frozenset({'GRO99222'}), 1.0), 
 (frozenset({'SNA80192'}), frozenset({'ELE17451'}), 1.0), (frozenset({'DAI22896'}), frozenset({'ELE17451'}), 0.9), 
 (frozenset({'GRO99222'}), frozenset({'ELE17451'}), 0.8125)]
三元组:

[(frozenset({'DAI22896'}), frozenset({'GRO73461', 'ELE17451'}), 0.8), (frozenset({'GRO73461'}), 
  frozenset({'ELE17451', 'DAI22896'}), 0.8), (frozenset({'ELE17451'}), frozenset({'GRO73461', 'DAI22896'}), 0.3076923076923077)]
我只是想知道是否可以检索元素,以便输出为以下格式:

OUTPUT A
FRO11987 FRO12685 0.4325
FRO11987 ELE11375 0.4225
FRO11987 GRO94758 0.4125
FRO11987 SNA80192 0.4025
FRO11987 FRO18919 0.4015
OUTPUT B
FRO11987 FRO12685 DAI95741 0.4325
FRO11987 ELE11375 GRO73461 0.4225
FRO11987 GRO94758 ELE26917 0.4125
FRO11987 SNA80192 ELE28189 0.4025
FRO11987 FRO18919 GRO68850 0.4015
如果没有任何替代品,使用冻结集将是有益的


感谢您阅读

有关双打的内容,您的双打中有单值集。您可以通过几种不同的方式检索第一个也是唯一的值:

>>> s = frozenset({'GRO73461'})
元组解包:

>>> value, = s
>>> value
'GRO73461'
转换为列表,然后获取第一个索引:

>>> list(s)[0]
'GRO73461'
创建一个迭代器,然后获取下一个值:

将生成器表达式与下一个表达式一起使用:

您有一个表示双元组的元组列表:

>>> double = (frozenset({'GRO73461'}), frozenset({'ELE17451'}), 1.0)
使用我向您展示的第一个元组解包方法,您可以在一个表达式中解包这些值:

>>> (first,), (second,), third = double
>>> first, second, third
'GRO73461', 'ELE17451', 1.0
要设置双精度值的格式,可以使用:

总共:

>>> doubles = [
...     (frozenset({'GRO73461'}), frozenset({'ELE17451'}), 1.0), 
...     (frozenset({'ELE26917'}), frozenset({'GRO99222'}), 1.0),
...     (frozenset({'SNA80192'}), frozenset({'ELE17451'}), 1.0), 
...     (frozenset({'DAI22896'}), frozenset({'ELE17451'}), 0.9),
...     (frozenset({'GRO99222'}), frozenset({'ELE17451'}), 0.8125)
... ]
>>> for double in doubles:
...     (first,), (second,), third = double
...     print double_format.format(first, second, third)
GRO73461 ELE17451 1.0000
ELE26917 GRO99222 1.0000
SNA80192 ELE17451 1.0000
DAI22896 ELE17451 0.9000
GRO99222 ELE17451 0.8125

对于双打,您的集合中有一个值。您可以通过几种不同的方式检索第一个也是唯一的值:

>>> s = frozenset({'GRO73461'})
元组解包:

>>> value, = s
>>> value
'GRO73461'
转换为列表,然后获取第一个索引:

>>> list(s)[0]
'GRO73461'
创建一个迭代器,然后获取下一个值:

将生成器表达式与下一个表达式一起使用:

您有一个表示双元组的元组列表:

>>> double = (frozenset({'GRO73461'}), frozenset({'ELE17451'}), 1.0)
使用我向您展示的第一个元组解包方法,您可以在一个表达式中解包这些值:

>>> (first,), (second,), third = double
>>> first, second, third
'GRO73461', 'ELE17451', 1.0
要设置双精度值的格式,可以使用:

总共:

>>> doubles = [
...     (frozenset({'GRO73461'}), frozenset({'ELE17451'}), 1.0), 
...     (frozenset({'ELE26917'}), frozenset({'GRO99222'}), 1.0),
...     (frozenset({'SNA80192'}), frozenset({'ELE17451'}), 1.0), 
...     (frozenset({'DAI22896'}), frozenset({'ELE17451'}), 0.9),
...     (frozenset({'GRO99222'}), frozenset({'ELE17451'}), 0.8125)
... ]
>>> for double in doubles:
...     (first,), (second,), third = double
...     print double_format.format(first, second, third)
GRO73461 ELE17451 1.0000
ELE26917 GRO99222 1.0000
SNA80192 ELE17451 1.0000
DAI22896 ELE17451 0.9000
GRO99222 ELE17451 0.8125

数据中的括号不匹配。您能先确定输入和输出吗?两个列表中的第一个数值分别为1.0和0.8。它们发生了什么?打印'\n'。加入'{}{}'。formatfirst.pop,second.pop,third for first,second,third in asm我为糟糕的输出表示歉意,我将修复它们。对于另一个问题,输出只是一个示例,说明从更大的数据集获取时应该是什么样子。给出的输出只是一个示例,我想将其格式化为上面所示的输出。很抱歉,我并不真正理解这个解决方案。也没能让它工作。为什么变量是as的一部分?数据中的括号不匹配。您能先确定输入和输出吗?两个列表中的第一个数值分别为1.0和0.8。它们发生了什么?打印'\n'。加入'{}{}'。formatfirst.pop,second.pop,third for first,second,third in asm我为糟糕的输出表示歉意,我将修复它们。对于另一个问题,输出只是一个示例,说明从更大的数据集获取时应该是什么样子。给出的输出只是一个示例,我想将其格式化为上面所示的输出。很抱歉,我并不真正理解这个解决方案。也没能让它工作。为什么变量是as的一部分?太棒了,谢谢!我只是想知道,这是三元组的代码:triple_format='{}{}{}{:0.4f}'对于triple-in-triples:first,second,third,fourth=triple-printtriple_format.formatfirst,second,third,第四个原因我试过了,但由于某些原因它不起作用。事实上,没关系,我找到了它!因为第二个元组有两个值,所以我必须首先、第二个1、第二个2、第三个进行解包!谢谢你的详细解释谢谢!我只是想知道,这是三元组的代码:triple_format='{}{}{}{:0.4f}'对于triple-in-triples:first,second,third,fourth=triple-printtriple_format.formatfirst,second,third,第四个原因我试过了,但由于某些原因它不起作用。事实上,没关系,我找到了它!因为第二个元组有两个值,所以我必须首先、第二个1、第二个2、第三个进行解包!谢谢你的详细解释