Erinevus lehekülje "JavaPython:Sõnastikud" redaktsioonide vahel
(Uus lehekülg: '{{JavaPython-sisukord}}') |
|||
(ei näidata sama kasutaja 3 vahepealset redaktsiooni) | |||
1. rida: | 1. rida: | ||
{{JavaPython-sisukord}} | {{JavaPython-sisukord}} | ||
+ | |||
+ | Pythoni sõnastikud on sarnased Java <b>kujutistele (map-idele).</b> Viimane kasutab erinevalt Pythonile objekti süntaksi. Literaalid puuduvad. | ||
+ | |||
+ | <b>Kujutis</b> on andmekogum, kus võtmete hulga igale elemendile on vastavuses üks väärtuste hulga element. Võib vaadelda nii, et kujutis sisaldab kaheosalisi kirjeid, mille esimest komponenti nimetatakse võtmeks ja teist väärtuseks. Ühe võtmega elemente võib olla vaid üks. Kasutatakse juhul, kui on vaja kiiresti mingi väärtuse (võtme) järgi üles leida teist väärtust. Võtit ja väärtust võib vaadelda ka kui seost - võti on seotud väärtusega. Vaatame konkreetset realisatsiooni <b>räsitabel (HashMap)</b>. | ||
+ | |||
+ | <b>Räsitabeli</b> deklareerimine ja loomine näeb välja järgnevalt: | ||
+ | <pre>HashMap<keyType, valueType> variable = new HashSet<keyType, valueType>();</pre> | ||
+ | |||
+ | Veel võimalusi: | ||
+ | <pre>type put(key, value) (returns previous value), type get(key), boolean containsKey(key).</pre> | ||
+ | |||
+ | == Näide == | ||
+ | |||
+ | {| | ||
+ | !Java | ||
+ | !Python | ||
+ | |- | ||
+ | |<syntaxhighlight lang="java" line="1" > | ||
+ | HashMap<String, String> phoneBook = | ||
+ | new HashMap<String, String>(); | ||
+ | phoneBook.put("Mike", "555-1111"); | ||
+ | phoneBook.put("Lucy", "555-2222"); | ||
+ | phoneBook.put("Jack", "555-3333"); | ||
+ | |||
+ | //iterate over HashMap | ||
+ | Map<String, String> map = new HashMap<String, String>(); | ||
+ | for (Map.Entry<String, String> entry : map.entrySet()) { | ||
+ | System.out.println("Key = " + entry.getKey() + | ||
+ | ", Value = " + entry.getValue()); | ||
+ | } | ||
+ | |||
+ | //get key value | ||
+ | phoneBook.get("Mike"); | ||
+ | |||
+ | //get all key | ||
+ | Set keys = phoneBook.keySet(); | ||
+ | |||
+ | //get number of elements | ||
+ | phoneBook.size(); | ||
+ | |||
+ | //delete all elements | ||
+ | phoneBook.clear(); | ||
+ | |||
+ | //delete an element | ||
+ | phoneBook.remove("Lucy"); | ||
+ | </syntaxhighlight> | ||
+ | |<syntaxhighlight lang="python" line="2" > | ||
+ | #create an empty dictionary | ||
+ | phoneBook = {} | ||
+ | phoneBook = {"Mike":"555-1111", | ||
+ | "Lucy":"555-2222", | ||
+ | "Jack":"555-3333"} | ||
+ | |||
+ | #iterate over dictionary | ||
+ | for key in phoneBook: | ||
+ | print(key, phoneBook[key]) | ||
+ | |||
+ | #add an element | ||
+ | phoneBook["Mary"] = "555-6666" | ||
+ | |||
+ | #delete an element | ||
+ | del phoneBook["Mike"] | ||
+ | |||
+ | #get number of elements | ||
+ | count = len(phoneBook) | ||
+ | |||
+ | #can have different types | ||
+ | phoneBook["Susan"] = (1,2,3,4) | ||
+ | |||
+ | #return all keys | ||
+ | print(phoneBook.keys()) | ||
+ | |||
+ | #delete all the elements | ||
+ | phoneBook.clear() | ||
+ | </syntaxhighlight> | ||
+ | |} |
Viimane redaktsioon: 4. veebruar 2016, kell 10:26
Java vs Python |
|
Pythoni sõnastikud on sarnased Java kujutistele (map-idele). Viimane kasutab erinevalt Pythonile objekti süntaksi. Literaalid puuduvad.
Kujutis on andmekogum, kus võtmete hulga igale elemendile on vastavuses üks väärtuste hulga element. Võib vaadelda nii, et kujutis sisaldab kaheosalisi kirjeid, mille esimest komponenti nimetatakse võtmeks ja teist väärtuseks. Ühe võtmega elemente võib olla vaid üks. Kasutatakse juhul, kui on vaja kiiresti mingi väärtuse (võtme) järgi üles leida teist väärtust. Võtit ja väärtust võib vaadelda ka kui seost - võti on seotud väärtusega. Vaatame konkreetset realisatsiooni räsitabel (HashMap).
Räsitabeli deklareerimine ja loomine näeb välja järgnevalt:
HashMap<keyType, valueType> variable = new HashSet<keyType, valueType>();
Veel võimalusi:
type put(key, value) (returns previous value), type get(key), boolean containsKey(key).
Näide
Java | Python |
---|---|
<syntaxhighlight lang="java" line="1" >
HashMap<String, String> phoneBook = new HashMap<String, String>(); phoneBook.put("Mike", "555-1111"); phoneBook.put("Lucy", "555-2222"); phoneBook.put("Jack", "555-3333"); //iterate over HashMap Map<String, String> map = new HashMap<String, String>(); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } //get key value phoneBook.get("Mike"); //get all key Set keys = phoneBook.keySet(); //get number of elements phoneBook.size(); //delete all elements phoneBook.clear(); //delete an element phoneBook.remove("Lucy"); </syntaxhighlight> |
<syntaxhighlight lang="python" line="2" >
phoneBook = {} phoneBook = {"Mike":"555-1111", "Lucy":"555-2222", "Jack":"555-3333"}
for key in phoneBook: print(key, phoneBook[key])
phoneBook["Mary"] = "555-6666"
del phoneBook["Mike"]
count = len(phoneBook)
phoneBook["Susan"] = (1,2,3,4)
print(phoneBook.keys())
phoneBook.clear() </syntaxhighlight> |