Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: PyData Warsaw 2017, 19-20 października - konferencja Data Science
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: przechowywanie na "półce"  (Przeczytany 171 razy)
« : 21:18 14/11/17 »
marmar Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 16


witam,
posiadając słownik odwzorowujący posortowany łańcuch liter na listę słów które można uzyskać z tych liter(anagramów), mam utworzyć funkcję przechowującą slownik anagramów na "półce".
Co to znaczy przechowywać na "półce"?
proszę o pomoc
Zapisane
« Odpowiedz #1 : 22:07 14/11/17 »
sig Offline
Professional Python User

Zobacz profil
***

Reputacja: 78
Wiadomości: 340


To przypuszczalnie wie tylko osoba która zadała ci to zadanie, słownik jako taki jest pojemnikiem, więc nie trzeba go nigdzie przechowywać.
Zapisane
« Odpowiedz #2 : 22:20 14/11/17 »
Guaz Offline
Advanced Python User

Zobacz profil
**

Reputacja: 14
Płeć: Mężczyzna
Wiadomości: 130


Polecam zapytać osobę która to zleciła, zgaduje że chodzi o przechowanie na później.
Więc jeśli mnie pamięć nie myli, to znaczy zapisać dane wynikowe programu w bezpieczny sposób aby móc je odczytać i na nich działać przy następnym uruchomieniu programu. Ale żeby to nazywać "półką"... No w sumie przy tłumaczeniu dosłownym by się zgadzało.
Zapisane

Python 3.5.2 / Mint
« Odpowiedz #3 : 19:44 15/11/17 »
marmar Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 16


Znalazłam takie zadanie w książce, jest mi dość trudno zapytać o nie autora. Skoro odkładanie na "półke" nie jest jednoznaczne to zinterpretuje to na swój sposób.
Dzięki za odpowiedzi
Zapisane
« Odpowiedz #4 : 21:05 15/11/17 »
Guaz Offline
Advanced Python User

Zobacz profil
**

Reputacja: 14
Płeć: Mężczyzna
Wiadomości: 130


Możesz podesłać treść, może będziemy w stanie dać jednoznaczną odpowiedź Uśmiech.
Zapisane

Python 3.5.2 / Mint
« Odpowiedz #5 : 21:11 15/11/17 »
marmar Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 16


"Utwórz moduł importujący program 'anagram_sets' i zapewniający dwie nowe funkcje.
Funkcja 'store_anagrams' powinna przechowywać slownik anagramów na "półce". Funkcja 'read_anagrams' powinna wyszukiwać slowo i zwracać listę argumentów"
Poradziłam sobie z nim tak:
Kod
  1 import anagram_sets
 2 def store_anagrams(anagram):
 3     my_list = anagram.all_anagrams("words.txt")
 4     return (my_list)
 5
 6 def read_anagrams(word, my_list):
 7     try:
 8         word in my_list
 9         return (my_list[word])
10     except KeyError:
11         return "nie ma anagramow slowa ", word
12 print (read_anagrams("aacet", store_anagrams(anagram_sets)))
Zapisane
« Odpowiedz #6 : 22:35 15/11/17 »
gadacz Offline
Advanced Python User

Zobacz profil
**

Reputacja: 8
Płeć: Mężczyzna
Wiadomości: 130


Czy możesz pokazać "anagram_sets"
i wycinek
Kod:
words.txt
??
Zapisane

--
pozdrawiam
gadacz
« Odpowiedz #7 : 10:42 16/11/17 »
marmar Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 16


anagram_sets:
Kod
def all_anagrams(filename):
37
36     d = {}
37     for line in open(filename):
38         word = line.strip().lower()
39         t = signature(word)
40
42         if t not in d:
43             d[t] = [word]
44         else:
45             d[t].append(word)
46     return d
 

plik 'words.txt' to lista słów z języka angielskiego, oto krótki wycinek:

abaci
aback
abacus
abacuses
abaft
abaka
abakas
abalone
abalones
abamp
abampere
abamperes
abamps
abandon
abandoned
abandoning
abandonment
abandonments
abandons
abas
abase
abased
abasedly
abasement
abasements
abaser
abasers
abases
abash
abashed
abashes
abashing
abasing
abatable
abate
abated
abatement
abatements
abater
abaters
abates
abating
abatis
abatises
abator
abators
abattis
abattises
abattoir
abattoirs
abaxial
abaxile
abbacies
abbacy
abbatial
abbe
abbes
abbess
abbesses
 
Zapisane
« Odpowiedz #8 : 12:13 16/11/17 »
Guaz Offline
Advanced Python User

Zobacz profil
**

Reputacja: 14
Płeć: Mężczyzna
Wiadomości: 130


Okej, teraz chyba rozumiem. Store_anagram ma przechowywać do wykorzystania w programie wczytaną list/set/tuple/dict anagramów, zamiast odczytywać i wyszukiwać po pliku Mrugnięcie.

I jeśli się nie mylę, to znaczy że zrobiłaś to dobrze. Chociaż set działałby szybciej - automatycznie jest posortowany i wyszukiwanie stringów po nim działa bardzo sprawnie Uśmiech.
Zapisane

Python 3.5.2 / Mint
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2017 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot