Próbuję napisać mały program dla mojego kursu Pythona (nauczanie siebie), jak słownik przy użyciu list. Jedna lista ma w nim frazę / słowo, a druga lista ma znaczenie frazy / słowa. Dzięki wprowadzaniu użytkownika użytkownik może wpisać słowo, którego szukają, a wyniki znaczenia słowa. Mam problem z próbą pokazania znaczenia. Mój kod jest poniżej: "Aldo" to moje pierwsze wejście (Word), "Moje imię" to moje drugie wejście (znaczenie)

word = []
meaning = []

user_word = input("Enter word: ")
user_meaning = input("Enter Meaning: ")
print(word)
print(meaning)

word = word + [user_word]
meaning = meaning + [user_meaning]

user_search = input("What word/phrase would you like to search: ")
search_index = word.index(user_search)
print(user_search + meaning.index(search_index))
-1
waldokhalid 4 czerwiec 2018, 01:41

3 odpowiedzi

Najlepsza odpowiedź

W Twoim kodzie jest kilka błędów / problemów.

  1. Drukowanie pustych list, nie jestem pewien, czy jest to przeznaczone jako sprawdzenie debugowania, ale drukujesz listy przed dołączenie wartości do nich, więc zawsze będą puste. Więc zakładam, że chcesz wydrukować tutaj dane wejściowe użytkownika; Jeśli nie, najpierw dołącz wartości, a następnie wydrukuj listy.

  2. Użyj list.append(item) zamiast list = list + [item]

  3. meaning.index(search_index) powinien być meaning[search_index] jako list.index(item) zwraca wartość indeksu dla pierwszego wystąpienia tego elementu na liście, a nie sama wartość.

  4. Wreszcie, niezbyt ważne, ale więcej problemu z czytelności, upewnij się, że istnieje przestrzeń między słowem a znaczeniem lub jakiś deliminator.

Oto kod, zakładając oczekiwane zachowanie:

word = []
meaning = []

user_word = input("Enter word: ")
user_meaning = input("Enter Meaning: ")
print(user_word)
print(user_meaning)

word.append(user_word)
meaning.append(user_meaning)

print(word)
print(meaning)

user_search = input("What word/phrase would you like to search: ")
print(user_search)
search_index = word.index(user_search)
print(user_search,  meaning[search_index])
1
Saif Azmi 3 czerwiec 2018, 23:21

Jeśli próbujesz stworzyć słownik, zamiast listy, możesz użyć słownika do przechowywania słów i znaczenia, a później używać go do wyszukiwania słowa (, aby uzyskać więcej o słowniku, możesz spojrzeć na Dokumentacja ).

Możesz spróbować wykonać następujące czynności:

my_dictionary = {} # dictionary to store word and meaning

user_word = input("Enter word: ").lower() # .lower() for not being case sensitive
user_meaning = input("Enter Meaning: ").lower() # .lower()

# add word and meaning to dictionary
my_dictionary[user_word] = user_meaning

# search word
user_search = input("What word/phrase would you like to search: ").lower()
print("Meaning of {0} is: {1}".format(user_search, my_dictionary[user_search]))
1
student 3 czerwiec 2018, 23:12

.index() Znajduje indeks, a nie wartość

Czy miałeś na myśli użyć meaning[search_index]?

Ponadto, aby dodać do list, przy użyciu .append(value) jest preferowany nad + [value]

user_word = input("Enter word: ")
user_meaning = input("Enter Meaning: ")

word.append(user_word.strip())
meaning.append(user_meaning)

user_search = input("What word/phrase would you like to search: ")
search_index = word.index(user_search.strip())
print(user_search + " " + meaning[search_index])
1
OneCricketeer 3 czerwiec 2018, 22:55