处理python列表时如何将字符串保持在一起?

时间:2019-04-30 20:01:40

标签: python

我正在尝试创建列表中包含的一组字符串的所有唯一组合。问题在于,不是获取字符串中单词的唯一组合,而是获取所有单个字母组合。我必须在代码中进行哪些更改才能使单词保持在一起?

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')]]

2 个答案:

答案 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')]