我目前正在尝试根据特定元素获取列表元素的所有组合。
我尝试使用itertools.combination
方法,但它只是为我提供了列表元素的所有组合。
l = ['it', 'them', 'BMW', 'car']
c = list(itertools.combinations(l, 2))
# Output
[('it', 'them'), ('it', 'BMW'), ('it', 'car'), ('them', 'BMW'), ('them', 'car'),
('BMW', 'car')]
更具体地说,我希望将是代词的元素与不是代词的其他元素(即特定的选定元素)的所有组合。因此所需的输出如下:
[('it', 'BMW'), ('it', 'car'), ('them', 'BMW'), ('them', 'car')]
有人知道我怎么做吗?谢谢。
修改
更具体地说,我想您可能会说,我很好奇itertools.combination
是否具有一种机制,您可以选择特定元素并与之产生组合。
答案 0 :(得分:3)
使用itertools.product
:
In [1]: a = ['it', 'them']
In [2]: b = ['bmw', 'car']
In [3]: from itertools import product
In [4]: list(product(a, b))
Out[4]: [('it', 'bmw'), ('it', 'car'), ('them', 'bmw'), ('them', 'car')]