2017-03-02 30 views
-1

私は非常にプログラミングには新しく、組み込み関数を使わずにリストのスライスを含む練習問題に取り組んでいるので、ユーザーが自分のスライス関数を作成するという考え方です。以下は質問です。それを解決する私の試みです。どんな助けもありがとうございます。ありがとうございました!組み込み関数を使わずにPythonでスライスする

Pythonはリストのスライス機能を提供しますが、この質問のために、あなたは(注意:あなたは、溶液中のスライス演算子を使用することはできません)リストのスライスを生成することができる独自の機能を実装します。この関数はスライスと呼ばれ、この特定の順序で次の3つの入力を取る必要があります。

  1. スライスを作成するリスト、ソース。このリストは、あなたの関数では変更できません。
  2. 作成するスライスの開始インデックスを表す正の整数。開始。この値が[0、len(list)-1]の範囲にない場合、関数は空のリストを返さなければなりません。
  3. 作成するスライスの終了インデックスを表す正の整数。この値が[start、len(list)-1]の範囲にない場合、関数は空のリストを返さなければなりません。
    パラメータ値が受け入れ可能な場合、関数は、インデックスの開始点から始まりインデックスの終点までを含むソースからの項目を含むリストを返します。これは、Pythonのスライス演算子とは異なります。インデックス端の項目も新しいリストに含まれています。

例:

mylist = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"] 
slice(mylist, 0, 9) should be ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"] slice(mylist, 3, 4) should be ["D", "E"] 
slice(mylist, 4, 3) should be [ ] 
slice(mylist, 3, 8) should be ["D", "E", "F", "G", "H", "I"] 
slice(mylist, 4, 4) should be ["E" ] 

マイコード:

source=int(input("Enter a list: ")) 
start=int(input("Enter the starting digit: ")) 
end=int(input("Enter the ending digit: ")) 

def slice(source,start,end): 
     if start is not [0, len(source)-1]: 
      print() 
     elif end is not [start, len(source)-1]: 
      print() 
    source.append(0,start) 
    source.append(len(source),end) 

slice[] 
+3

ニースの試み。あなたの質問は何ですか? – miradulo

+1

@Mitch私はこの試みについて何が良いか分かりません。 –

+0

@Mitchありがとうございます:質問は例の上にあります。 – kleenexbox

答えて

-1

は、私は本当に感謝し見下す@lmiguelvargasfせずに支援しようとしてくれてありがとうを自分でそれを考え出しました。

start = int(input(" Enter the starting index of the slice you will create: ")) 
end = int(input("Enter the ending index of the slice you will create: ")) 
def slice(source, start, end): 
    myList = [] 
    for i in range(start, end+1): 
     if start in range(0, len(source)) and end in range(start,  len(source)): 
     myList.append(source[i]) 
return myList 

myList = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] #This is the source 
print(slice(myList,start,end)) 
関連する問題