Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单词Python-';非类型';对象是不可编辑的_Python - Fatal编程技术网

单词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