# HG changeset patch # User Shantanu # Date 1272452598 -19800 # Node ID d35eccbf206d94b317766cc0aef648fbbf5a9753 # Parent 751cb19549c8c3e78a49e4b0f64076d18866523e Added dictionary.org file. diff -r 751cb19549c8 -r d35eccbf206d dictionary.org --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dictionary.org Wed Apr 28 16:33:18 2010 +0530 @@ -0,0 +1,113 @@ +* Lists +*** Outline +***** Lists +***** Tuples +***** Arsenal Required +*** Script + Welcome friends. + + In previous tutorial we covered Lists and Tuples and related + functions. In this session we will continue with Python supported + data structures and cover Dictionaries and sets. We have already + covered some basics of Dictionaries in session on Statistics. Here + we will revisit those concepts and some new ones. + + We give it a name and it should return a corresponding number. + Dictionaries are just key-value pair. For each 'key' there is + corresponding 'value'. In lists we have indexes to access elements, + here we have 'key'. + + '{}' are used to create Python dictionaries. Lets start by opening + IPython interpreter. Lets create a dictionary say + + player = {'Mat': 134,'Inn': 233, + 'Runs': 10823, 'Avg': 52.53} + Its dictionary storing statistics of a cricket player. + Now to get the 'average' of this player we have to simply write + print player['Avg'] + 52.53 + + To add a new key-value to this dictionary we have to something like + player['Name'] = 'Rahul Dravid' + print player + Please dont forget that Python dictionaries dont maintain the order + in which key-value pair are stored it changes as we add new entries. + + In dictionaries Duplicate keys are overwritten, that is when we do + player['Mat'] = 139 + It wont create a new entry, rather it will simply overwrite previous + value with new one. So + print player + will have updated value + + As we covered in one of previous sessions to iterate through lists + we use 'for'. In case of dictionaries we can iterate over them using + 'keys' for example + for key in player: + print key, player[key] + We saw how containership works in lists, there we can check if a + value is present in list or not, in case of Dictionaries it works + only for keys. so + 'Inn' in player + returns True + 'Econ' in Player + returns False as there is no such 'key' + If you try to look or search 'value' it wont work. + Dictionaries supports some functions to retrieve keys and values + like + player.keys() + returns the list of all 'keys' + player.values() + return list of all 'values' + + Next we shall look at 'sets'. Sets in Python are unordered + collection of unique elements. This data structure comes handy in + situations while removing duplicates from a sequence, and computing + standard math operations on sets such as intersection, union, + difference, and symmetric difference. + + Lets start by creating a set + f10 = set([1,2,3,5,8]) + f10 is set of Fibonacci numbers less then 10 + lets print value of f10 + print f10 + + As we mentioned earlier, these are unordered structure so order of + elements are not maintained, and output order is different than + input order. Lets create one more set of all prime numbers less than + 10 + p10 = set([2,3,5,7]) + print p10. + + To get union of these two sets we use '|' operator + f10 | p10 + + For intersection & operator is used: + f10 & p10 + + f10 - p10 gives difference between f10 and p10, which is, elements + present in f10 but not present in p10. + ^ operator gives us symmetric difference that is p10 union f10 minus + f10 intersection p10 + f10 ^ p10 + + To check if a set is super set or subset greater than and lesser than + operators can be used + set([2,3]) < p10 + returns True as p10 is superset of given set + + Similar to lists and dictionaries sets also supports containership so + 2 in p10 + returns True as 2 is part of set p10 and + 4 in p10 + returns False. + + len function works with sets also: + len(f10) returns the length, that is 5 + We can also use 'for' loops to iterate through a set. + + With this we come to the end of this tutorial on Dictionaries and + sets. We have covered some of properties of both data types and + functions supported by them. Thank you. + +*** Notes