![]() |
Unhasshable type 'list' - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: Unhasshable type 'list' (/thread-11666.html) |
Unhasshable type 'list' - Piqurs - Jul-20-2018 Hi, so I'm getting this error I don't know what is wrong with my code. It suppose to print the Subject of the sentence that I input#deklarasi kelas kata KATA_GANTI_1 = ['saya','Saya', 'mereka', 'kami', 'kita', 'aku', 'beta', 'daku', 'engkau'] KATA_GANTI_2 = ['anda' , 'kamu', 'engkau', 'kau', 'dikau', 'mu' , 'kalian' , 'kamu sekalian' , 'sekalian' ] KATA_GANTI_3 = ['mereka','nya','ia','beliau','dia','bapak', 'ayah', 'ibu', 'mama' 'kakak', 'kakek', 'adik', 'nenek', 'abang', 'tante', 'bibi', 'paman'] SUBJEK = [KATA_GANTI_1 , KATA_GANTI_2, KATA_GANTI_3] PREDIKAT = ['mengatakan' , 'berkata' , 'bertanya' , 'menanyakan' , 'memerintah' , 'memerintahkan' , 'menyuruh' , 'memberitahu'] KATA_HUBUNG_BERITA = ['bahwa' , 'supaya'] KATA_HUBUNG_TANYA_TOTAL = ['apakah' , 'kah'] KATA_HUBUNG_TANYA_PARSIAL = ['tentang',] KET_SIFAT = ['sangat', 'lebih', 'kurang', 'cukup' ,'paling' , 'agak'] KATA_SIFAT = ['cantik' 'jelek' , 'tinggi' , 'pendek' , 'kesal' , 'rapi' , 'banyak' , 'berat' , 'hebat' ] KET_WAKTU = ['kemarin', 'besok', 'sekarang', 'kini', 'lusa', 'siang', 'malam', 'pagi', 'sebelum', 'sesudah', 'baru saja' , 'barusan','saat', 'sesaat', 'sewaktu', 'seketika', 'yang lalu' , 'tadi'] #==========================================================================================================# #token from nltk.tokenize import word_tokenize nama = input ("Masukkan Kalimat : ") kalimat = nama.lower().split() kalpeng = (nama[nama.find('.') + 1:nama.find('“')]) kalsung = (nama[nama.find('“') + 1:nama.find('”')]) for index, kata in enumerate (kalimat): if kata in set(KATA_GANTI_1) | set(KATA_GANTI_2) | set(KATA_GANTI_3) | set(SUBJEK): x = "Subjek" print (kata + "adalah ", x) else : print ("Tidak ada Subjek") RE: Unhasshable type 'list' - buran - Jul-20-2018 SUBJEK is list of lists, so it's not hashable. That is exactly what the error says... >>> my_list = [[1,2], [3,4]] >>> set(my_list) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'I don't see the point of adding set(SUBJEK). i.e. kata is str, elements in SUBJEK are of type list RE: Unhasshable type 'list' - woooee - Jul-20-2018 And instead of converting to a set on each pass through the for, convert once before the for and check that KATA_GANTI_1 = ['saya','Saya', 'mereka', 'kami', 'kita', 'aku', 'beta', 'daku', 'engkau'] KATA_GANTI_2 = ['anda' , 'kamu', 'engkau', 'kau', 'dikau', 'mu' , 'kalian' , 'kamu sekalian' KATA_GANTI_3 = ['mereka','nya','ia','beliau','dia','bapak', 'ayah', 'ibu', 'mama' 'kakak', ' ## can also be done on one line all_as_set=KATA_GANTI_1 + KATA_GANTI_2 + KATA_GANTI_3 all_as_set=set(all_as_set) |