# Python ## Useful things **Create a list from range** ``` list = [x for x in range(5,100,2)] // (begining, end, step) print(list) ``` **Create a dictionairy from 2 lists** ``` list = [x for x in range(5,20,2)] listB = ["apple", "banana", "pear"] dict = {list[i] : listB[i] for i in range(len(listB))} print(dict) // {5: 'apple', 7: 'banana', 9: 'pear'} ``` ***args and \*\*kwargs** *args passed in a function is treated as a list ``` def my_sum(*args): return sum(args) print(my_sum(1, 2, 3)) // 6 ``` **kwargs passed in a function is treated as a dictionairy ``` def concatenate(**kwargs): result = "" # Iterating over the Python kwargs dictionary for arg in kwargs.values(): result += arg return result print(concatenate(a="Real", b="Python", c="Is", d="Great", e="!")) // RealPythonIsGreat! ``` ## Lambda expressions **map function** ``` def square(num): return(num*num) my_nums = [1,3,5,6] for number in map(square, my_nums): print(number) // 1,9,25,36 my_nums = list(map(square,my_nums)) print(my_nums) // [1, 9, 25, 36] ``` **filter function** ``` // return a filtered list of even numbers def is_even(number): return number%2 == 0 my_nums = [1,3,5,2,6,12,11] filtered = list(filter(is_even, my_nums)) print(filtered) // [2,6,12] ``` **lambda functions** ``` my_list = [5,12,33] print(list(map(lambda num: num **2, my_list))) // [25, 144, 1089] print(list(filter(lambda num: num%2==0, my_list))) // [12] ```