Ale*_*ecs 46 python boolean initialization list
是否有可能没有循环将所有列表值初始化为某些bool?例如,我想要一个N个元素的列表都是False.
Roh*_*ain 103
你可以这样做: -
>>> [False] * 10
[False, False, False, False, False, False, False, False, False, False]
Run Code Online (Sandbox Code Playgroud)
注: -
需要注意的是,你永远不应该有一个做到这一点list
的mutable types
有相同的值,否则你会看到像在下面的例子中令人惊讶的行为: -
>>> my_list = [[10]] * 3
>>> my_list
[[10], [10], [10]]
>>> my_list[0][0] = 5
>>> my_list
[[5], [5], [5]]
Run Code Online (Sandbox Code Playgroud)
如您所见,您在一个内部列表中所做的更改将反映在所有这些内容中.
小智 14
my_list = [False for i in range(n)]
Run Code Online (Sandbox Code Playgroud)
这将允许您更改单个元素,因为它独立构建每个元素.
虽然,这在技术上是一个循环.
当空间重要时,bytearray
是一个更好的选择.它的空间效率大约是布尔解决方案列表的五倍.
这会创建一个N
值数组,初始化为零:
B = bytearray(N)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
71354 次 |
最近记录: |