繁体   English   中英

Itertools 没有重复但有多种组合

[英]Itertools without repetition but with multiple combinations

我似乎无法找到一种方法来使用 itertools 而不重复,同时保持多种组合。

我想要什么

> my_list = ['a', 'b', 'c']
> the_result_i_want = ['ab', 'ac', 'ba', 'bc', 'ca', 'cb']

到目前为止我设法做的事情:

for i in range (2, len(my_list)) : 
    for my_result in itertools.product(my_list, repeat=i) : 
        print(''.join(my_result))

但我目前得到的结果是aa ab ac ba bb bc ca cb cc
(我知道是一个类似的问题,但答案认为abba是相同的,在我的情况下应该不同)
谢谢 !

解决方案是itertools.product文档下方的一项,即itertools.permutations

from itertools import permutations

print([''.join(item) for item in permutations(my_list, 2)])

['ab', 'ac', 'ba', 'bc', 'ca', 'cb']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM