2017-02-02 10 views
0

1つの特異配列内に複数のリスト番号があり、配列内の特定のリストの位置を探したいと思います。私の位置を望むこのリストは、ユーザーがそのリストの最初の項目として入力する単語を含まなければならない。pythonで配列内のリスト項目の.indexを見つける方法は?

john = ['John', 'Smith', 'm', 34, 1.7, True] 
mary = ['Mary', 'Smith', 'f', 33, 1.54, False] 
frank = ['Frank', 'Lee', 'm', 48, 1.83, False] 
mark = ['Mark', 'Abbott', 'm', 27, 1.73, True] 
jasmine = ['Jasmine', 'Healy', 'f', 19, 1.64, True] 
cathy = ['Cathy', 'Potter', 'f', 19, 1.59, True] 

LIST = [john, mary, frank, mark, jasmine, cathy] 

print("Hello, welcome to the parachutist searcher.") 
loop = 0 
while loop == 0: 
    name = input("Please enter a first name: ") 
    if name in [item[0] for item in LIST]: 
     finalName = name 
     print(finalName) 
     position = LIST.index([finalName]) 
     print(position) 
    else: 
     print("Nup.") 

何かの理由で、私は位置を試して印刷すると、配列内のfinalNameを見つけることができないということを返します。これをどうやって解決するのですか?

+1

リストの代わりに辞書を使用し、名前をキーにします。 – Barmar

+0

あなたはさらに説明できますか? – CoopDaddio

+0

'DICT = {'John':john、 'Mary':mary、...}'その後、DICT [name]にアクセスできます。 – Barmar

答えて

0

いつも単純なfor文を使用できます。このように書式設定すると、無限ループに入ることもなくなります。

name = input("Give me a name.") 
found = false 
for each in LIST: 
    if name in each: 
     found = true 
     print(name) 
     print(LIST.index(each)) 
if found == false: 
    print("nup.") 
関連する問題