|
| 1 | +# Comprehensions in Python provide us with a short and concise way to |
| 2 | +# construct new sequences (such as lists, set, dictionary etc.) using |
| 3 | +# sequences which have been already defined. |
| 4 | + |
| 5 | +# Simple List Comprehension |
| 6 | +# for version |
| 7 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 8 | +my_list = [] |
| 9 | +for number in numbers: |
| 10 | + my_list.append(number) |
| 11 | +print(my_list) |
| 12 | +# [1, 2, 3, 4, 5, 6, 7] |
| 13 | + |
| 14 | +# comprehension version |
| 15 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 16 | +my_list = [number for number in numbers] |
| 17 | +print(my_list) |
| 18 | +# [1, 2, 3, 4, 5, 6, 7] |
| 19 | + |
| 20 | + |
| 21 | +# Taking An Action On Each Item |
| 22 | +# for version |
| 23 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 24 | +my_list = [] |
| 25 | +for number in numbers: |
| 26 | + my_list.append(number * number) |
| 27 | +print(my_list) |
| 28 | +# [1, 4, 9, 16, 25, 36, 49] |
| 29 | + |
| 30 | +# comprehension version |
| 31 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 32 | +my_list = [number * number for number in numbers] |
| 33 | +print(my_list) |
| 34 | +# [1, 4, 9, 16, 25, 36, 49] |
| 35 | + |
| 36 | +# lambda version |
| 37 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 38 | +my_list = map(lambda number: number * number, numbers) |
| 39 | +print(list(my_list)) |
| 40 | +# [1, 4, 9, 16, 25, 36, 49] |
| 41 | + |
| 42 | + |
| 43 | +# Comprehension If |
| 44 | +# for version |
| 45 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 46 | +my_list = [] |
| 47 | +for number in numbers: |
| 48 | + if number % 2 == 0: |
| 49 | + my_list.append(number * number) |
| 50 | +print(my_list) |
| 51 | +# [4, 16, 36] |
| 52 | + |
| 53 | +# comprehension version |
| 54 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 55 | +my_list = [number * number for number in numbers if number % 2 == 0] |
| 56 | +print(my_list) |
| 57 | +# [4, 16, 36] |
| 58 | + |
| 59 | + |
| 60 | +# Comprehension If Else |
| 61 | +# for version |
| 62 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 63 | +my_list = [] |
| 64 | +for number in numbers: |
| 65 | + if number % 2 == 0: |
| 66 | + my_list.append(number) |
| 67 | + else: |
| 68 | + my_list.append(number * number) |
| 69 | +print(my_list) |
| 70 | +# [1, 2, 9, 4, 25, 6, 49] |
| 71 | + |
| 72 | +# comprehension version |
| 73 | +numbers = [1, 2, 3, 4, 5, 6, 7] |
| 74 | +my_list = [number if number % 2 == 0 else number * number for number in numbers] |
| 75 | +print(my_list) |
| 76 | +# [1, 2, 9, 4, 25, 6, 49] |
| 77 | + |
| 78 | + |
| 79 | +# Comprehension Nested |
| 80 | +# for version |
| 81 | +my_list = [] |
| 82 | +for letter in 'abc': |
| 83 | + for number in range(1, 4): |
| 84 | + my_list.append((letter, number)) |
| 85 | +print(my_list) |
| 86 | +# [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)] |
| 87 | + |
| 88 | +# comprehension version |
| 89 | +my_list = [(letter, number) for letter in 'abc' for number in range(1, 4)] |
| 90 | +print(my_list) |
| 91 | +# [('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3), ('c', 1), ('c', 2), ('c', 3)] |
| 92 | + |
| 93 | + |
| 94 | +# Comprehensions Dictionary |
| 95 | +# for version |
| 96 | +colors = ['Red', 'Green', 'Orange'] |
| 97 | +veggies = ['Pepper', 'Onion', 'Squash'] |
| 98 | + |
| 99 | +my_dict = {} |
| 100 | +for color, veggie in zip(colors, veggies): |
| 101 | + my_dict[color] = veggie |
| 102 | +print(my_dict) |
| 103 | +# {'Red': 'Pepper', 'Green': 'Onion', 'Orange': 'Squash'} |
| 104 | + |
| 105 | +# comprehension version |
| 106 | +colors = ['Red', 'Green', 'Orange'] |
| 107 | +veggies = ['Pepper', 'Onion', 'Squash'] |
| 108 | + |
| 109 | +my_dict = {color: veggie for color, veggie in zip(colors, veggies)} |
| 110 | +print(my_dict) |
| 111 | +# {'Red': 'Pepper', 'Green': 'Onion', 'Orange': 'Squash'} |
| 112 | + |
| 113 | + |
| 114 | +# Dict Comprehension With If |
| 115 | +# for version |
| 116 | +colors = ['Red', 'Green', 'Orange'] |
| 117 | +veggies = ['Pepper', 'Onion', 'Squash'] |
| 118 | + |
| 119 | +my_dict = {} |
| 120 | +for color, veggie in zip(colors, veggies): |
| 121 | + if color != 'Orange': |
| 122 | + my_dict[color] = veggie |
| 123 | +print(my_dict) |
| 124 | +# {'Red': 'Pepper', 'Green': 'Onion'} |
| 125 | + |
| 126 | +# comprehension version |
| 127 | +colors = ['Red', 'Green', 'Orange'] |
| 128 | +veggies = ['Pepper', 'Onion', 'Squash'] |
| 129 | + |
| 130 | +my_dict = {color: veggie for color, veggie in zip(colors, veggies) if color != 'Orange'} |
| 131 | +print(my_dict) |
| 132 | +# {'Red': 'Pepper', 'Green': 'Onion'} |
| 133 | + |
| 134 | + |
| 135 | +# Comprehension Set |
| 136 | +# for version |
| 137 | +numbers = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5] |
| 138 | +my_set = set() |
| 139 | +for number in numbers: |
| 140 | + my_set.add(number) |
| 141 | +print(my_set) |
| 142 | +# {1, 2, 3, 4, 5} |
| 143 | + |
| 144 | +# comprehension version |
| 145 | +numbers = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5] |
| 146 | +my_set = {number for number in numbers} |
| 147 | +print(my_set) |
| 148 | +# {1, 2, 3, 4, 5} |
0 commit comments