【发布时间】:2012-02-07 23:39:33
【问题描述】:
我是编程新手,我正在尝试编写一个 Python 函数来使用以下代码查找 {1,2,3,...,n} 上的逆排列:
def inv(str):
result = []
i = list(str).index(min(list(str)))
while min(list(str)) < len(list(str)) + 1:
list(str)[i : i + 1] = [len(list(str)) + 1]
result.append(i + 1)
return result
但是,当我尝试使用该函数时,inv('<mypermutation>') 返回[]。我错过了什么吗? Python 是否因为某些我不理解的语法原因跳过了我的 while 循环?我对我认为的主题的 google 和 stackoverflow 搜索都没有返回任何有用的信息。
【问题讨论】:
-
不要命名变量
str;它是内置的。 -
“如有疑问,请打印更多内容。”
-
我尝试将“str”重命名为“permutation”,但仍然返回“[]”。还有其他提示吗?
-
@Fingolfin:哦,等等,你是在字面上执行
inv('<mypermutation>')吗?然后,while 条件将字符串与整数进行比较,根据您使用的 Python 版本,该整数可能具有False结果。例如,在 Python 3 中,您会收到错误消息。 -
Fingolfin,我认为您需要展示一个未经修改的文字示例,说明您如何调用此函数来帮助人们解决这个问题。
标签: python permutation