单词Python-';非类型';对象是不可编辑的
我必须创建输入字符串的所有排列,并删除重复项(如果存在)。这意味着我必须以所有可能的顺序洗牌输入中的所有字母单词Python-';非类型';对象是不可编辑的,python,Python,我必须创建输入字符串的所有排列,并删除重复项(如果存在)。这意味着我必须以所有可能的顺序洗牌输入中的所有字母 File "main.py", line 3, in <module> Test.assert_equals(sorted(permutations('a')), ['a']); TypeError: 'NoneType' object is not iterable 使用return语句返回值,而不是将结果赋给函数名。(如果内存可用,这就是P
File "main.py", line 3, in <module>
Test.assert_equals(sorted(permutations('a')), ['a']);
TypeError: 'NoneType' object is not iterable
使用
return
语句返回值,而不是将结果赋给函数名。(如果内存可用,这就是Pascal指示函数返回值的方式,但我离题了。)此外,您的rotate
函数未被使用;您正在调用deque
类的rotate
方法,该方法修改d
,而不是返回新的旋转deque。调用d.rotate
,然后返回d
。最后,旋转deque
一次并不能给出所有排列;它给你一个排列。即使将它旋转多次,最终也只能得到原始序列的循环排列。@chepner。你的观点很好。这些可能是一个很好的答案。sympy
不在核心Python中。您需要在命令提示下pip安装sympy
。
import collections
def rotate(l, n):
rotate = l[-n:] + l[:-n]
def permutations(a):
d = collections.deque()
m = d.rotate(len(a))
return m