2017-11-28 13 views
1

私の割り当ての1つは、リストと整数の2つの引数を受け取り、リストの指定された要素を返す関数を書くことです。たとえば、リストxと2を与えると、リストxの2番目の要素が返されます。私の先生は、リストメソッドを使用せずにこれを行うことを望んでいます。しかし、議論が通り抜けるように見えることはありません。変数を宣言して後で初期化する方法はありますか?私はこれを回避する方法を知らない。関数の特定の整数を与えることによってリストのインデックスを返すにはどうすればよいですか?

myList = [1, 3, 'hello', 6, 8] 

int num 

def find_element(myList, num): 
    return myList[num] 
print(myList[num]) 
+0

あなたの割り当てでは、標準入力からの数値が必要なのでしょうか? – birryree

+0

"リストメソッドを一切使用しない":わかりません。おそらくそれはアルゴリズムについて何かを学ぶことは有益ですが、リストをループするには '__next__'メソッド(要素を反復する)や' __len__'メソッドを使う必要があります(for old in for ' len(myList)) 'ループ)。 – Evert

+0

また、「しかし、議論は通り抜けるようには見えません」しかし、あなたは最初にあなたの機能を呼び出すことはありません。 – Evert

答えて

0

あなたは、[Pythonの2またはraw_input()]パイソン3にinput()を介して入力する値をユーザに尋ねることができます。
これを索引として検索することができます。しかし、その入力は文字列として来るので、整数に変換する必要があります。

def find_element(myList, num): 
    return myList[num] 

myList = [1, 3, 'hello', 6, 8] 

val = input('Please enter an index between 0 and 4: ') 
num = int(val) 

print(find_element(myList, num)) 

メインプログラムで使用されているのと同じ変数名を使用するように関数を記述したことに注意してください。これは大丈夫ですが、何が起こっているかについて少し混乱するかもしれません。何が起こっているのかをより明白にするために、異なる変数名を使用することができます(おそらくそうすべきです)。

あなたが言うように
def find_element(someList, someNum): 
    return someList[someNum] 
1
myList = [1,3,'hello',4,5,6,7] 

def find_element(List, Num): 
    return List[Num-1] 
print(find_element(myList,2)) #Num will print what is contained in list in order 
1
list1 = [1, 3, 'hello', 6, 8] 
list2 = [4, 7, 'prevyet', 1, 'a'] 
list3 = [-99, 77, 'caio', 78, 3] 

def find_element(theList, theNum): 
    retVal = None 
    if theNum >=0 and theNum < len(theList): 
     retVal = theList[theNum] 
    return retVal 

print(find_element(list1, 3)) 
print(find_element(list2, 0)) 
print(find_element(list3, 4)) 
0

、それは任意のリストのメソッドを使用することはできません:ように、例えば、あなたはあなたの関数を行うことができます。おそらくループを使用する必要があります。

def func(arr, num): 
    for key, value in enumerate(arr): 
     if key == num: 
      return value 
    return None 

my_list = [1, 3, 'hello', 6, 8] 
print(my_list, 2) 

numを入力したい場合は、 @ Gary02127と同じように。

num = int(input("input the number: ")) 
関連する問題