Python Data Structures

Summary

[ ] = List
{ } = Dictionary
( ) = Tuple

Boolean:- boolean_true_of_false

List

Identified by square brackets and uses comma as seperator between elements. A list element is looked up by it's position in the list.

list = ['value1', 'value2']

Remember, list indices start at 0!! To get the first item, start with the index 0:-

firstitem = list[0] 

Add a new item to the end of the list with:-

list.append(value3)

Add a new item in the middle:-

list.insert(value2)

Select the last item in a list, this example splits a file url on directory separator (/), and selects the last item which should be the filename. Won't work on windows, but who cares!!

fileName = key.split('/')[-1]

Iterate over a list

# for loop
for index in list:
    print(index)

Dictionary

Identified by curly brackets and uses “:” to seperate out a Key and a Value. A value in a dictionary is referenced by it's key, the actual order of items stored in a dictionary can change, so you cannot retreive a value based on the position if you just print out the whole dictionary, you have to use the key.

dict = { "key1": "value1", "key2": "value2" }

If you want to look up the meaning of a word in English, you use a Dictionary to find the word (Key) and then read out the meaning of the word (Value).

wordlist = { 
  'obfuscate': 'to make something less clear and harder to understand, especially intentionally',  
  'clarify': 'to make something clear or easier to understand by giving more details' 
}

So:-

definition = wordlist['obfuscate']

returns to make something less clear and harder to understand, especially intentionally

As a dictionary is referenced by it's key to get a value, adding a new element is as easy as just creating a new key:value pair, there is no concept of insert as with a list.

wordlist.update({'understand':'to know the meaning of something that someone says'})
wordlist['difficult'] = 'needing skill or effort'

Testing if a key exists in a dictionary, key in dictionary evaluates to true or false:-

if record["Key1"] in record:
    record["Key2"] = record["Key1"]

Print just keys:-

print(dictionary.keys())

Print all keys and values in a dictionary:-

for key in dict:
    print(key, dict[key])

Print out each key/value line by line:-

for key, value in get_metadata_response.items():
        print(key, ' : ', value)   

Testing keys, check if a dictionary contains a specified key:-

if 'user_a' in metadata.keys():
    print("user_a supplied")             
elif 'user_b' in metadata.keys():
    print("user_b supplied")
else:
    print('Neither user A or B')

Tuple

A tuples is an immutable sequence. This means you cannot change it after it is created.

tuple = (a, b, c)

Strings

In Python a string is a list so you can address individual elements in it using list notation.

So to select a portion of a string you can address each character as a list element:-

account = '445156287145'
removechar = 8
 
result1 = account[removechar:]
 
result2 = account[removechar:len(account)]
 
print(result1, result2)
7145 7145

List of dictionaries

listOfDict = [ {'foo':1,'bar':123},
  	     {'boo':3,'mar':234},
	     {'moo':5,'par':345} ]

Boolean True of False

Booleans are either “True or False”

      # Add user to user_model table, sql code to add new row OR update existing one:-
      # https://stackoverflow.com/questions/15383852/sql-if-exists-update-else-insert-into
      user_model_sql = f'''
      insert into user_model(highside_user_id, login_status)
      values ('{hsusername}', true)
      on duplicate key
      update highside_user_id = values(highside_user_id), login_status = values(login_status);
      '''
      

mysql_query = f“SELECT IF(login_status, 'true', 'false') from user_model WHERE highside_user_id = '{sessionname}'; ”

 
python/python-data-struct.txt · Last modified: 23/01/2024 10:46 by andrew