我有5个垂直字符串,按我的分类器按概率顺序生成。如果分类器的信心非常高,我想保留该分类,但对于低分类,我希望根据所有可能的组合顺序进行变化,以创建所有可能的垂直字符串列表。如何获得列表中的所有可能的订单
所以我的数据是这样的:
aa aa aa aa aa
ab ac aa ad ae
aa ab af ae ag
,我想获得所有可能的排列组合
aa aa aa aa aa aa aa aa aa aa ...
ab ac aa ad ae ae ab ac aa ad ...
aa ab af ae ag aa ab af ae ag...
我试图itertools,但我似乎无法找到合适的工具来做到这一点。有谁知道如何做到这一点?
这是我到目前为止已经试过:
import sys
import os
import itertools
from itertools import permutations
in_file = sys.argv[1]
f1 = open(in_file, 'r')
new_lines = []
for line in f1.readlines():
line = line.strip()
do stuff to replace my higher confidence matches...
new_lines.append(line)
for x in new_lines:
for a,b,c,d,e,f,g,h,i,j in permutations(x.split(), 10):
print '{} {} {} {} {} {} {} {} {} {}'.format(a.rstrip('\n'), b.rstrip('\n'), c.rstrip('\n'), d.rstrip('\n'), e.rstrip('\n'), f.rstrip('\n'), g.rstrip('\n'), h.rstrip('\n'), i.rstrip('\n'), j.rstrip('\n'))
我测试了10,使确保它没有爆炸,但是这似乎并没有工作,我以为它会的方式。如果我放5,它只给我我以前的同样名单。有什么办法可以做到这一点?
因此,要确认您想要从一组x(5)输入中选择n(10)个对象的每个可能的唯一序列? – leumas95
您可以使用'itertools.product'描述[这里](https://stackoverflow.com/questions/23058028/how-to-get-all-mappings-between-two-lists?rq=1) – Gleland
@ leumas95 。我只是把10停下来。我真的想要每个5元素列表的所有可能的命令。 – badner