为何itertools的combinations方法返回空列表?
问题原因分析
你得到空列表的核心原因是传入combinations的可迭代对象元素数量不足:
combinations(iterable, r)的作用是从iterable中选出长度为r的所有不重复元素组合(不考虑顺序)。- 你写的
['picaacd']是一个仅包含1个字符串元素的列表,而你指定了r=2——要选2个元素,但可迭代对象里只有1个元素,自然没有符合条件的组合,返回空列表。
正确的写法
如果你的需求是从字符串'picaacd'的单个字符中生成2个字符的组合,直接把字符串传给combinations即可(字符串本身是可迭代对象,每个字符是独立元素):
from itertools import combinations TUPLES = list(combinations('picaacd', 2)) print(TUPLES)
执行后会得到所有2个字符的组合,示例输出片段:
[('p', 'i'), ('p', 'c'), ('p', 'a'), ('p', 'a'), ('p', 'c'), ('p', 'd'), ('i', 'c'), ...]
内容的提问来源于stack exchange,提问作者mishav
相关产品推荐
相关产品推荐

