2016-11-11 33 views
-6

反转列表中的前n项并返回。如果n < = 0,则返回空列表。不要消耗超过n项迭代。将列表中的前n项反向并返回

>>> reverse(4, ['f', 'o', 'o', 't', 'b', 'a', 'l', 'l']) 
    ['t', 'o', 'o', 'f', 'b', 'a', 'l', 'l'] 



    if n <= len(lst): 
    return [] 
    else: 
    for i in range(n):????What next? 
+0

到目前为止,如果n <= len(lst):return [],那么一个错误是'如果n <= 0,返回空列表'。在这种情况下,你将永远得到一个空的名单 – davedwards

+2

@ Shitty.coder:你应该改变你的昵称! –

+0

欢迎来到SO。如果你[学会提出好问题](http://stackoverflow.com/help/how-to-ask),你会得到更多的帮助。 – CAB

回答

0
def my_reverse(num, l): 
    if num <= 0: 
     return [] 
    return l[:num][::-1] + l[num:] 

# Explanation: 
# l[:num]  : Sliced list with elements between 0 to num 
# l[:num][::-1] : Reverse of slice list 
# l[num:]  : Sliced list with elements from num to end 

采样运行:

>>> my_reverse(4, ['f', 'o', 'o', 't', 'b', 'a', 'l', 'l']) 
['t', 'o', 'o', 'f', 'b', 'a', 'l', 'l'] 
0
>>> def reverse(n, lst): 
     if n <= 0: 
      return [] 
     return lst[:n][::-1] + lst[n:] 

>>> reverse(4, ['f', 'o', 'o', 't', 'b', 'a', 'l', 'l']) 
['t', 'o', 'o', 'f', 'b', 'a', 'l', 'l'] 
>>> 

说明:

  • if n <= 0::如果n小于或等于零...
  • return []:返回一个空的列表。否则...
  • return lst[:n][::-1]:返回范围内的所有元素n并将它们逆向。 Plus ...
  • lst[n:]:其余元素超出范围n