Z pliku do słownika /wytłumaczenie kodu

0

Czy dodbrze to rozumiem? ten kod....
(!W programie jest użyty słownik(plik PoliMorf) , w kształcie, w środku pliku:
myślący \t myślenie \n
.... . \t .............\n
....

f.niepodstawowa \t forma podstawowa \n )

try:
    document = open ('PoliMorf-0.6.7.tab','r',encoding='utf8')
except FileNotFoundError:
    print("Blad otwarcia\n")
    quit()
    
dictionary = {}
for line in document: //tutaj jest czytana każda linia?
    lista = line.split("\t")  //tutaj dzielona jest ta linia ze względu na \t
    dictionary[lista[0]] = lista[1]   // #### i teraz co się dzieje?co to znaczy dicionary[lista[0]], przeież w dicionary nie  ma nic na razie?
//jakby to było dicionary[0] to by znaczyło ze klucz to** forma podstawowa**, ale tak nie jest
while True:
    slowo = input("Podaj slowo:\n")
    try:
        print(dictionary[slowo])
    except KeyError:
        print("Nie ma takiego slowa\n")
0

lista = line.split("\t") //tutaj dzielona jest ta linia ze względu na \t
dictionary[lista[0]] = lista[1] // #### i teraz co się dzieje?co to znaczy dicionary[lista[0]], przeież w dicionary nie ma nic na razie?

Tak na oko dzieje się magia wypełniania słownika - dictionary = {lista[0] : lista[1], ... itd.}, a dicionary[lista[0]] oznacza "wartość pod kluczem lista[0]

jakby to było dictionary[0]

Gdyby tam był taki klucz, to miało by to jakiś sens

1

Poczytaj dokumentacje, w tym momencie
dictionary[lista[0]] = lista[1]
Dodajesz pare key: lista[0], value: lista[1] do slownika, I tak dalej w petli.

0

Chcesz zajmować się przetwarzaniem języka naturalnego i jakąś lematyzacją tekstu a nie umiesz wczytać CSV w pythonie? :D Powodzenia!

dictionary = {}
for line in document:
    lista = line.split("\t")
    base = lista[1]
    morphed = lista[0]
    dictionary[morphed] = base
0

Panie shalom, ta instrukcja dictionary[morphed] = base dodaje rekord którym kluczem jest morphead a drugą wartością base?

0

To jest jakieś zadanie, w którym nie możesz używać żadnych bibliotek? W tym przykładzie, wygodnie użyć na przykład pandas.

import pandas as pd

df = pd.read_csv('PoliMorf-0.6.7.tab',
                 sep='\t',
                 encoding='utf-8',
                 header=None,
                 usecols=[0, 1],
                 index_col=0)
while True:
    slowo = input("Podaj slowo:\n")
    result = df.loc[df.index == slowo]
    if result.empty:
        print("Nie ma takiego slowa\n")
    else:
        print(result.to_string(index=False))

1 użytkowników online, w tym zalogowanych: 0, gości: 1