Erinevus lehekülje "JavaPython:Sõnastikud" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
(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" >
  1. create an empty dictionary

phoneBook = {} phoneBook = {"Mike":"555-1111",

            "Lucy":"555-2222", 
            "Jack":"555-3333"}

  1. iterate over dictionary

for key in phoneBook:

   print(key, phoneBook[key])

  1. add an element

phoneBook["Mary"] = "555-6666"

  1. delete an element

del phoneBook["Mike"]

  1. get number of elements

count = len(phoneBook)

  1. can have different types

phoneBook["Susan"] = (1,2,3,4)

  1. return all keys

print(phoneBook.keys())

  1. delete all the elements

phoneBook.clear() </syntaxhighlight>