Set of duplicates in a list


    l1 = [1,2,3,4,1,2,3,5,6,7,3,5,9]
    print(set([x for x in l1 if l1.count(x) > 1]))
        

Reverse a list


    l1 = [1,2,3,4]

    ''' using reverse() '''
    l1.reverse() # l1 = [4,3,2,1]

    ''' using slicing '''
    l2 = l1[::-1] # l2 = [4,3,2,1]

    ''' using reversed() '''
    l3 = list(reversed(l1)) # l3 = [4,3,2,1]

    ''' using conventional looping '''
    l4 = []
    for i in range(len(l1), -1, -1):
        l4.append(l1[i])
        

Remove duplicates in a list


    l1 = [1,2,3,4,1,2,3,5,6,7,3,5,9]

    ''' using set '''
    l2 = list(set(l1)) # l2 = [1,2,3,4,5,6,7,9]

    ''' using set with lambda '''
    rem_duplicate = lambda arr:set(arr)
    l3 = list(rem_duplicate(l1)) # l3 = [1,2,3,4,5,6,7,9]

    ''' using conventional looping '''
    l3 = []
    for ele in l1:
        if ele not in l3:
            l3.append(ele)
    # l3 = [1,2,3,4,5,6,7,9]
        

Implement a Stack using a List


    class Stack:
        def __init__(self):
            self.items = []
        def isEmpty(self):
            return not self.items
        def push(self, item):
            self.items.append(item)
        def pop(self):
            return self.items.pop()
        def peek(self):
            return self.items[-1]
        def size(self)
            return len(self.items)
        def __str__(self):
            return str(self.items)
        

Implement a Queue using Collection.deque


    from collection import deque
    class Queue:
        def __init__(self):
            self.items = deque
        def isEmpty(self):
            return not self.items
        def enqueue(self, ele):
            self.items.append(ele)
        def dequeue(self):
            return self.items.popleft()
        def size(self):
            return len(self.items)
        def peek(self)
            return self.items[0]
        def __str__(self):
            return str(self.items)

        

Merge two dictionaries


    d1 = {"hi": 1, "hello": 2}
    d2 = {"namaste": 1}

    ''' using update() '''
    d1.update(d2) # d1 = {"hi": 1, "hello": 2, "namaste": 1}; d2 = {"namaste": 1}

    ''' using ** '''
    d3 = {**d1, **d2} # d3 = {"hi": 1, "hello": 2, "namaste": 1}; d1 = {"hi": 1, "hello": 2}; d2 = {"namaste": 1}
        

List Split


    l = [1, 2, 3, 4]
    l[1:3] = [5, 6, 7]
    print(l)  # [1, 5, 6, 7, 4]
        

List Split


    word = "Python"
    print(word[2:10]+".")     # thon.
    print(word[10])           # IndexError: string index out of range