2016-04-28 10 views
0

このコードで私の主張は、ユーザが選択した別の単語を含むリストにuserInputを追加することです。しかし、ちょうどループを維持し、私は何かがelse文の下でコードに間違っていると思われる。私は何が分かりません。何か案は?ありがとう!ネストしたリストの特定のリストにアイテムを挿入するPYTHON CLOSED

import sys 

list1 = ["hello", "hi"] 
list2 = ["goodbye", "bye"] 

my_list = [list1, list2] 
userInput0 = input("What word do you want to put into a list?") 
while True: 
    userInput1 = input("Type a word in which list you want your input to be put in") 

    if userInput1 not in (j for i in my_list for j in i): 
     continue 
    else: 
     for i in range(len(my_list)): 
      if userInput1 == my_list[i]: 
       my_list[i].append(userInput1) 
       print(my_list) 
       break 

答えて

0

あなたの問題は、このコード行です:

if userInput1 == my_list[i]: 

この行は、ユーザーの入力が、この場合にはリストである[I]をmy_listということが厳密に等しいかどうかをチェックしています。あなたは2つのforのループ、外側のリストその後、ネストされたリストのためのいずれかのいずれかを実行する必要がで使用してみてください代わりに==

if userInput1 in my_list[i]: 
+0

ありがとう!本当に助けになった。 –

0


だからあなたのコードは次のようになります。

(...) 
else: 
    for i in range(len(my_list)): 
     for j in range(len(my_list[i])): 
      if userInput1 == my_list[i][j]: 
       my_list[i].append(userInput1) 
       print(my_list) 
       break 
(...) 
+0

マイケル・ロベラードの答えは別の(おそらくもっと良い)解決策です... – MCManuelLP

0

つ以上の誤りがありました。コードをもう一度正しくチェックしてください。

import sys 

list1 = ["hello", "hi"] 
list2 = ["goodbye", "bye"] 

my_list = [list1, list2] 
userInput0 = input("What word do you want to put into a list?") 
while True: 
    userInput1 = input("Type a word in which list you want your input to be put in") 
    for i in range(len(my_list)): 
     if userInput1 in my_list[i]: 
      my_list[i].append(userInput0) 
      print(my_list) 
      break 
+0

そうです、あなたが勝ちます。 –

関連する問題