首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Itertools.Permutations()

Python Itertools.Permutations()
EN

Stack Overflow用户
提问于 2011-11-14 02:27:34
回答 4查看 69.5K关注 0票数 34

为什么itertools.permutations()返回每个排列的字符或数字列表,而不是只返回一个字符串?

例如:

代码语言:javascript
复制
>>> print([x for x in itertools.permutations('1234')])
>>> [('1', '2', '3', '4'), ('1', '2', '4', '3'), ('1', '3', '2', '4') ... ]

它为什么不返回这个呢?

代码语言:javascript
复制
>>> ['1234', '1243', '1324' ... ]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-14 02:30:11

itertools.permutations()就是这样工作的。它接受一个任意的iterable作为参数,并且总是返回一个产生元组的迭代器。它不(也不应该)有特殊情况的字符串。要获取字符串列表,您始终可以自己连接元组:

代码语言:javascript
复制
list(map("".join, itertools.permutations('1234')))
票数 53
EN

Stack Overflow用户

发布于 2011-11-14 02:30:29

因为它需要一个可迭代的参数,而不知道,所以它是一个字符串。文档中对该参数进行了说明。

http://docs.python.org/library/itertools.html#itertools.permutations

票数 15
EN

Stack Overflow用户

发布于 2017-01-20 19:04:30

也可以对字符串和列表执行Perumatation,下面是示例。

代码语言:javascript
复制
x = [1,2,3]

如果您需要对上面的列表进行排列

代码语言:javascript
复制
print(list(itertools.permutations(x, 2)))

# the above code will give the below..
# [(1,2),(1,3),(2,1)(2,3),(3,1),(3,2)]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8113684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档