# list
my_list = [1, 4, 5, 9]
print(my_list)

type(my_list)

# accessing each element by index
print(my_list[2])

len(my_list)

# assigning new value
my_list[1] = 12
print(my_list)

# append an element at the end
my_list.append(7)
print(my_list)

help(list)

# String
my_name = 'Anne' # it is also a tuple of characters
my_name[2]

len(my_name)

# sequence string separated by space
seq = 'AAA TTT CCC GGG'
print(seq.split())

?str.split

?str.join

','.join(my_name)

"""
Explanation: Quick recap

Collections: Lists and String
End of explanation
"""


# Sets
my_set = set([1, 2, 3, 3, 3, 4])
print(my_set)

len(my_set)

my_set.add(3) # sets are unordered
print(my_set)

my_set.remove(3)
print(my_set)

# set operation using union | or intersection &
my_first_set = set([1, 2, 4, 6, 8])
my_second_set = set([8, 9, 10])
my_first_set | my_second_set

my_first_set & my_second_set

"""
Explanation: Session 1.4

Collections Sets and dictionaries
End of explanation
"""


# Dictionnaries are collections of key/value pairs
my_dict = {'A': 'Adenine', 'C': 'Cytosine', 'T': 'Thymine', 'G': 'Guanine'}
print(my_dict)

my_dict['C']

my_dict['N']

?my_dict.get

my_dict.get('N', 'unknown')

print(my_dict)
len(my_dict)

type(my_dict)

'T' in my_dict

# Assign new key/value pair
my_dict['Y'] = 'Pyrimidine'
print(my_dict)

my_dict['Y'] = 'Cytosine or Thymine'
print(my_dict)

del my_dict['Y']
print(my_dict)

help(dict)

my_dict.keys()

list(my_dict.keys())

my_dict.values()

my_dict.items()

"""
Explanation: Exercises 1.4.1
Given the protein sequence "MPISEPTFFEIF", find the unique amino acids in the sequence.
End of explanation
"""


