Difference between revisions of "Python:DataTypes"

From wiki
Jump to navigation Jump to search
m
Line 2: Line 2:
  
 
=Object types=
 
=Object types=
Objects are iterable if they can contain more than 1 ordered objects (string, list, tuple, dict).
+
Objects are iterable if they can contain more than 1 ordered objects ([[Python:Strings|string]], list, tuple, dict).
 
Objects are mutable if their content can be changed (list, set, dict)
 
Objects are mutable if their content can be changed (list, set, dict)
  

Revision as of 23:58, 13 January 2018


Object types

Objects are iterable if they can contain more than 1 ordered objects (string, list, tuple, dict). Objects are mutable if their content can be changed (list, set, dict)

Note: Variables are pointers to objects, not the object itself.

list

Class of iterable, mutable objects. Lists can be compared to arrays in other languages. Lists can contain a mixture of all kind of objects.

lst1 = []
Initialize an empty list
lst1.append(2)
Add the '2' object to the end of lst1
lst1=list(object)
convert object to a list (object is e.g. set, tuple or string)

set

Class of non iterable, mutable objects. Objects added to sets are hashed. Therefor:

  • Only immutable objects can be added to a set.
  • Sets cannot hold duplicate objects (adding an objects again does not change the set.
  • Checking if a set holds an object is very fast.
set1 = set()
Initialize an empty set
set1.add(2)
Add the '2' object to set1

Tuple

Class of iterable, immutable objects. Results from database queries are by default returned as tuple.

tpl1 = ()
Initialize an empty tuple

Dictionary or dict

Class of iterable, mutable objects. Dictionary's can be compared to perl hashes.

dict1 = {}
Initialize an empty dictionary.
dict1 = { column1: value1, column2: value2 }
Initialize dictionary with data

Code example:

dict = {}
dict["name1"] = {}
dict["name1"]["street"] = "mystreet"
 
for name in dict:
   print name
   for key2 in dict[name]:
      print key2,dict[name][key2]
 
for name in dict:
   print name
   for key2 in sorted(dict[name].keys()):
      print key2,dict[name][key2]

None

The None object is returned e.g. if nothing is found in a re.search. The None object is not an empty string

Slicing

You can address all iterable datatypes partly or in a difference sequence.

object[b:e:s]
Generic format where b=Begin (counting starts at 0), e=End, s=Stepsize (negative stepsize starts counting at the end)