Initialize list with same bool value
Is it possible without loops initialize all list values to some bool? For example I want to have a list of N elements all False.
You can do it like this: -
>>> [False] * 10 [False, False, False, False, False, False, False, False, False, False]
NOTE: - Note that, you should never do this with a list of mutable types with same value, else you will see surprising behaviour like the one in below example: -
>>> my_list = [] * 3 >>> my_list [, , ] >>> my_list = 5 >>> my_list [, , ]
As you can see, changes you made in one inner list, is reflected in all of them.
my_list = [False for i in range(n)]
This will allow you to change individual elements since it builds each element independently.
Although, this technically is a loop.
When space matters, bytearray is a better choice. It's roughly five times more space efficient than the list of boolean solution.
This creates an array of N values, initialized to zero:
B = bytearray(N)