Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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_Permutation - Fatal编程技术网

Python辅音/元音排列

Python辅音/元音排列,python,permutation,Python,Permutation,我想为特定的辅音/元音设置生成所有可能的排列。例如,我想要所有可能的3个字母的单词排列,格式为CVC(辅音、元音、辅音) 我不知道用什么方法来增加排列: permutations("bcdfghjklmnpqrstvwxyz",1) * permutations("aeiou",1) * permutations("bcdfghjklmnpqrstvwxyz",1) 如何在python中实现这一点?请注意: >>> import itertools >>>

我想为特定的辅音/元音设置生成所有可能的排列。例如,我想要所有可能的3个字母的单词排列,格式为CVC(辅音、元音、辅音)

我不知道用什么方法来增加排列:

permutations("bcdfghjklmnpqrstvwxyz",1) * permutations("aeiou",1) * permutations("bcdfghjklmnpqrstvwxyz",1)
如何在python中实现这一点?

请注意:

>>> import itertools
>>> consonants = "bcdfghjklmnpqrstvwxyz"
>>> vowels = "aeiou"
>>> poss = list(itertools.product(consonants, vowels, consonants))
>>> len(poss)
2205
>>> poss[:10]
[('b', 'a', 'b'), ('b', 'a', 'c'), ('b', 'a', 'd'), ('b', 'a', 'f'), ('b', 'a', 'g'), ('b', 'a', 'h'), ('b', 'a', 'j'), ('b', 'a', 'k'), ('b', 'a', 'l'), ('b', 'a', 'm')]
或者,如果你想要明确的词语:

>>> words = list(''.join(letters) for letters in itertools.product(consonants, vowels, consonants))
>>> words[:10]
['bab', 'bac', 'bad', 'baf', 'bag', 'bah', 'baj', 'bak', 'bal', 'bam']
营救:

>>> import itertools
>>> consonants = "bcdfghjklmnpqrstvwxyz"
>>> vowels = "aeiou"
>>> poss = list(itertools.product(consonants, vowels, consonants))
>>> len(poss)
2205
>>> poss[:10]
[('b', 'a', 'b'), ('b', 'a', 'c'), ('b', 'a', 'd'), ('b', 'a', 'f'), ('b', 'a', 'g'), ('b', 'a', 'h'), ('b', 'a', 'j'), ('b', 'a', 'k'), ('b', 'a', 'l'), ('b', 'a', 'm')]
或者,如果你想要明确的词语:

>>> words = list(''.join(letters) for letters in itertools.product(consonants, vowels, consonants))
>>> words[:10]
['bab', 'bac', 'bad', 'baf', 'bag', 'bah', 'baj', 'bak', 'bal', 'bam']

以下是一个非基于itertools的解决方案:

>>> import string
>>> vowels = set('aeiou')
>>> consonants = set(string.ascii_lowercase) - vowels
>>> cvc_generator = (''.join((c1, v, c2)) for c1 in consonants for v in vowels for c2 in consonants) 
>>> cvc_generator.next()
'cac'
>>> cvc_generator.next()
'cab'
>>> cvc_generator.next()
'cad'
>>> cvc_generator.next()
'cag'
>>> print ' '.join(cvc for cvc in cvc_generator)
caf cah cak caj cam cal can caq cap cas car cat caw cav cay cax caz cic cib cid cig cif cih cik cij cim cil cin ciq cip cis cir cit ciw civ ciy cix ciz cec ceb ced ceg cef ceh cek cej cem cel cen ceq cep ces cer cet cew cev cey cex cez cuc cub cud cug cuf cuh cuk cuj cum cul cun cuq cup cus cur cut cuw cuv cuy cux cuz coc cob  <..snip..>
导入字符串 >>>元音=集合('aeiou') >>>辅音=集合(string.ascii_小写)-元音 >>>cvc_生成器=(''.join((c1,v,c2))表示辅音中的c1,表示辅音中的v,表示辅音中的c2) >>>cvc_生成器。下一个() “cac” >>>cvc_生成器。下一个() “出租车” >>>cvc_生成器。下一个() “cad” >>>cvc_生成器。下一个() “cag” >>>打印“”。连接(cvc_生成器中cvc的cvc) caf cah cak caj cam cal caq cap car caw cay cax caz cib cib cib cib cib cib cim cil ciw ciw civ ciy cix ciz cec ceb ced ceg cef ceh cek cem cec cet cew cev cey cey cex cez cuc cuc cud cug cuf cuk cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc CU
这是一个非基于itertools的解决方案:

>>> import string
>>> vowels = set('aeiou')
>>> consonants = set(string.ascii_lowercase) - vowels
>>> cvc_generator = (''.join((c1, v, c2)) for c1 in consonants for v in vowels for c2 in consonants) 
>>> cvc_generator.next()
'cac'
>>> cvc_generator.next()
'cab'
>>> cvc_generator.next()
'cad'
>>> cvc_generator.next()
'cag'
>>> print ' '.join(cvc for cvc in cvc_generator)
caf cah cak caj cam cal can caq cap cas car cat caw cav cay cax caz cic cib cid cig cif cih cik cij cim cil cin ciq cip cis cir cit ciw civ ciy cix ciz cec ceb ced ceg cef ceh cek cej cem cel cen ceq cep ces cer cet cew cev cey cex cez cuc cub cud cug cuf cuh cuk cuj cum cul cun cuq cup cus cur cut cuw cuv cuy cux cuz coc cob  <..snip..>
导入字符串 >>>元音=集合('aeiou') >>>辅音=集合(string.ascii_小写)-元音 >>>cvc_生成器=(''.join((c1,v,c2))表示辅音中的c1,表示辅音中的v,表示辅音中的c2) >>>cvc_生成器。下一个() “cac” >>>cvc_生成器。下一个() “出租车” >>>cvc_生成器。下一个() “cad” >>>cvc_生成器。下一个() “cag” >>>打印“”。连接(cvc_生成器中cvc的cvc) caf cah cak caj cam cal caq cap car caw cay cax caz cib cib cib cib cib cib cim cil ciw ciw civ ciy cix ciz cec ceb ced ceg cef ceh cek cem cec cet cew cev cey cey cex cez cuc cuc cud cug cuf cuk cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc cuc CU
查看
itertools
模块。查看
itertools
模块。我可能会在Python2上使用
map('''.join,itertools.product(c,v,c))
。@agf:方法上的map尽可能流畅,但我通常更喜欢比扰动更健壮的东西。我可能会使用
map(''.join,itertools.product(c,v,c))
在Python2上。@agf:方法上的映射非常灵活,我通常更喜欢比扰动更健壮的东西。