diff --git a/README.md b/README.md
index 8634b1c..4f4d1e4 100644
--- a/README.md
+++ b/README.md
@@ -2250,12 +2250,57 @@ def return_sum():
How do you swap values between two variables?
+```
x, y = y, x
+```
+
-How to check if all the elements in a given lists are unique? so [1, 2, 3] is unique but [1, 1, 2, 3] is not unique but we 1 twice
-
+How to check if all the elements in a given lists are unique? so [1, 2, 3] is unique but [1, 1, 2, 3] is not unique because 1 exists twice
+
+
+There are many ways of solving this problem:
+# Note: :list and -> bool are just python typings, they are not needed for the correct execution of the algorithm.
+
+Taking advantage of sets and len:
+
+```
+def is_unique(l:list) -> bool:
+ return len(set(l)) == len(l)
+```
+
+This one is can be seen used in other programming languages.
+
+```
+def is_unique2(l:list) -> bool:
+ seen = []
+
+ for i in l:
+ if i in seen:
+ return False
+ seen.append(i)
+ return True
+```
+
+Here we just count and make sure every element is just repeated once.
+
+```
+def is_unique3(l:list) -> bool:
+ for i in l:
+ if l.count(i) > 1:
+ return False
+ return True
+```
+
+This one might look more convulated but hey, one liners.
+
+```
+def is_unique4(l:list) -> bool:
+ return all(map(lambda x: l.count(x) < 2, l))
+```
+
+
What _ is used for in Python?
@@ -2404,7 +2449,66 @@ def reverse_string(string):
What empty return
returns?
-
+
+
+Short answer is: It returns a None object.
+
+We could go a bit deeper and explain the difference between
+
+```
+def a ():
+ return
+
+>>> None
+```
+
+And
+
+```
+def a ():
+ pass
+
+>>> None
+```
+Or we could be asked this as a following question, since they both give the same result.
+
+We could use the dis module to see what's going on:
+
+```
+ 2 0 LOAD_CONST 0 (", line 2>)
+ 2 LOAD_CONST 1 ('a')
+ 4 MAKE_FUNCTION 0
+ 6 STORE_NAME 0 (a)
+
+ 5 8 LOAD_CONST 2 (", line 5>)
+ 10 LOAD_CONST 3 ('b')
+ 12 MAKE_FUNCTION 0
+ 14 STORE_NAME 1 (b)
+ 16 LOAD_CONST 4 (None)
+ 18 RETURN_VALUE
+
+Disassembly of ", line 2>:
+ 3 0 LOAD_CONST 0 (None)
+ 2 RETURN_VALUE
+
+Disassembly of ", line 5>:
+ 6 0 LOAD_CONST 0 (None)
+ 2 RETURN_VALUE
+```
+
+An empty return
is exactly the same as return None
and functions without any explicit return
+will always return None regardless of the operations, therefore
+
+
+```
+def sum(a, b):
+ global c
+ c = a + b
+
+>>> None
+```
+
+
##### Time Complexity