2016-11-11 13 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

ようこそ。あなたは[良い質問をすることを学ぶ](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のすべての要素を返し、を逆にします。プラス...
  • lst[n:]:残りの要素は過去の範囲nです。
関連する問題