【发布时间】:2013-04-16 07:14:08
【问题描述】:
我在 python 中有一个函数,它是在列表理解中递归编程的。但我不清楚它到底发生了什么!
def permut(s,l):
if l == []: return [[s]]
return [ e + [l[0]] for e in permut(s, l[1:])] + [l+[s]]
该函数有两个参数,第一个是字符串,第二个是列表,它返回列表中字符串的排列。
permut('a', [1,2,3])
[['a', 3, 2, 1], [3, 'a', 2, 1], [2, 3, 'a', 1], [1, 2, 3, 'a']]
谁能解释一下,列表理解中会发生什么?
【问题讨论】:
-
递归调用中的 a 是什么?
-
是的,你是对的 Tim P.
-
你真正想做什么?是你自己的代码吗?如果没有,你是想解决它的问题,还是简单地理解它?
-
我想了解一下,列表推导到底发生了什么?
标签: python recursion list-comprehension