-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