[英]Unique permutations of a list without repetition
我知道有很多关于排列( 唯一、 可变长度等)的帖子,但我无法使用它们来解决我的特定问题。
假设我有一个美国大都市区列表: ['nyc','sf','atl']
我需要 output 2 个地铁的排列而不重复。 例如,我尝试过:
set(itertools.permutations(['nyc','sf','atl'], 2))
{('atl', 'nyc'),
('atl', 'sf'),
('nyc', 'atl'),
('nyc', 'sf'),
('sf', 'atl'),
('sf', 'nyc')}
但是,请注意 NYC 和 ATL 配对了两次: ('nyc', 'atl')
和('atl', 'nyc')
。 理想的 output 将是:
{('nyc', 'nyc'),
('nyc', 'sf'),
('nyc', 'atl'),
('sf', 'sf'),
('sf', 'atl'),
('atl', 'atl')}
正如@Daniel Mesejo 评论所提到的,使用组合。
>>> import itertools
>>> set(itertools.combinations(['nyc','sf','atl'], 2))
{('nyc', 'atl'), ('sf', 'atl'), ('nyc', 'sf')}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.