标签:python-2-7 permutation python
我一直在尝试计算给定序列长度下两个字符(E和L)的所有排列.如果我导入itertools并运行itertools.permutation(‘LE’,8),我将没有任何输出,显然,如果仅通过itertools.permutation(‘LE’),我将得到两个很长的排列,即LE和EL.有没有一种以这样的方式运行排列的方式,即我将拥有参数“ LE”和一个数字(例如3),结果将是:
LLL
EEE
LLE
EEL
LEE
ELL
ELE
LEL
提前致谢.
解决方法:
您想要的是笛卡尔积LE×LE×LE.
将itertools.product与repeat参数一起使用:
In [60]: list(itertools.product('LE', repeat=3))
Out[60]:
[('L', 'L', 'L'),
('L', 'L', 'E'),
('L', 'E', 'L'),
('L', 'E', 'E'),
('E', 'L', 'L'),
('E', 'L', 'E'),
('E', 'E', 'L'),
('E', 'E', 'E')]
In [62]: [''.join(p) for p in itertools.product('LE', repeat=3)]
Out[62]: ['LLL', 'LLE', 'LEL', 'LEE', 'ELL', 'ELE', 'EEL', 'EEE']
标签:python-2-7,permutation,python 来源: https://codeday.me/bug/20191031/1973347.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。