-1
我在做python在线课程。 约章“采取降”左2个例子:Python采取下降(练习)
def take(num, lyst):
rlist = []
for i in range(0,num):
rlist.append(lyst[i])
return rlist
def drop(num, lyst):
rlist = []
for i in range(num, len(lyst)):
rlist.append(lyst[i])
return rlist
names = ['Raymond','Cynthia','David','Jennifer','Clayton']
somenames = take(3,names)
print(somenames)
names = drop(3,names)
print(names)
作为练习我不得不重写代码,以便将与负参数上班数字(-3)。
我想出了这个代码:
def take(num,lyst):
rlist=[]
if num>0:
for i in range(0,num):
rlist.append(lyst[i])
else:
for i in range(len(lyst)-abs(num),len(lyst)):
rlist.append(lyst[i])
return rlist
def drop(num,lyst):
rlist=[]
if num>0:
for i in range(num,len(lyst)):
rlist.append(lyst[i])
return rlist
else:
for i in range(len(lyst)-abs(num),len(lyst)):
rlist.append(lyst[i])
return rlist
但我认为它不够有效,这将是更好的建议。 编辑:修改的功能也应该向后工作。例如:take(-3,名称)将从最后3个
那么,'take(-3,names)'和'drop(-3,names)'的结果是什么?你的代码是否已经产生了正确的结果? –
修改过的函数也应该向后工作。例如:take(-3,names)从上次开始将需要3个工作,但它正在寻找更好的代码 – shotex
*“我认为它效率不够高” - - 基于什么?是否有一些性能问题(内存?CPU?是否分析了它?)您能否扩展您的效率标准?如果这是你认为可以改进的**工作代码**,请考虑http://codereview.stackexchange.com,但我建议你阅读并遵循[风格指南](http://www.python.org/) dev/peps/pep-0008 /)作为第一个停靠港。 – jonrsharpe