我正在尝试创建列表中包含的一组字符串的所有唯一组合。问题在于,不是获取字符串中单词的唯一组合,而是获取所有单个字母组合。我必须在代码中进行哪些更改才能使单词保持在一起?
from itertools import combinations
mylist = ['green bird','black dog','tan cat']
tlist = list(
map(lambda x: list(combinations(x, 2)), mylist)
)
tlist[0:3]
给予
[[('g', 'r'),
('g', 'e'),
('g', 'e'),
('g', 'n'),
('g', ' '),
('g', 'b'),
('g', 'i'),
('g', 'r'),
('g', 'd'),
...
但我想要
[[('green bird', 'black dog'), ('green bird', 'tan cat'), ('black dog', 'tan cat')]]
答案 0 :(得分:1)
您正在使它变得比所需的复杂。 combinations
will already generate为您提供了iterable
和预期序列长度r
的组合。
输出为generator
,因此只需单击一次list()
就可以获取列表。
from itertools import combinations
tlist = list(combinations(mylist, 2))
答案 1 :(得分:0)
这是您的操作方式:
from itertools import combinations
mylist = ['green bird','black dog','tan cat']
result = list(combinations(mylist, 2))
print(result)
输出:
[('green bird', 'black dog'), ('green bird', 'tan cat'), ('black dog', 'tan cat')]