2024-06-16 11:21:15 发布
网友
我需要定义一个函数apply(L,p),其中L是一个列表,p是一个置换,它应该返回列表lop
到目前为止我得到的是
import itertools def apply(L, P): for perm in L: return perm
输入的一个例子是apply(['ah', 'boo', 'cc', 'du', 'eh'], [1, 4, 3, 2, 0]) 但唯一的输出是'ah'
apply(['ah', 'boo', 'cc', 'du', 'eh'], [1, 4, 3, 2, 0])
'ah'
任何帮助都会很好。在
这听起来像是一项通过列表理解最容易完成的任务:
>>> def apply(L, P): ... return [ L[i] for i in P ] ... >>> apply(['ah', 'boo', 'cc', 'du', 'eh'], [1, 4, 3, 2, 0]) ['boo', 'eh', 'du', 'cc', 'ah']
以下是我的版本:
def apply(L, P): newL = [None]*len(L) for i,index in enumerate(P): newL[i] = L[index] return newL
在python中,这很容易在一行代码中完成,但是我想说明一下这里发生了什么。在
返回前会创建整个列表。return表示函数应该退出并返回指定的值。在您的例子中,它是'ah',因为它是列表中的第一个元素。在
return
如果您想学习python,请查看svk的very python list comprehension。在
这听起来像是一项通过列表理解最容易完成的任务:
以下是我的版本:
在python中,这很容易在一行代码中完成,但是我想说明一下这里发生了什么。在
返回前会创建整个列表。
return
表示函数应该退出并返回指定的值。在您的例子中,它是'ah'
,因为它是列表中的第一个元素。在如果您想学习python,请查看svk的very python list comprehension。在
相关问题 更多 >
编程相关推荐