2016-04-28 3 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]: 

Эта строка проверяет, чтобы увидеть, если пользовательский ввод в точности равна my_list [я], который в данном случае представляет собой список. Попробуйте использовать в вместо ==

if userInput1 in my_list[i]: 
+0

Отлично, спасибо! Действительно помог. –

0

Вы должны сделать две for петли, один для внешнего списка, а затем один для вложенного списка.
Так что ваш код должен выглядеть следующим образом:

(...) 
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

Правильно, вы побеждаете. –