我有一个布尔值列表,有时我会将它们全部重置为false。在第一次将重置写为:
for b in bool_list:
b = False
我发现它不起作用。我花了片刻的时间挠头,然后记起它当然不会起作用,因为我只改变了对bool的引用,而不是它的值。所以我重写为:
for i in xrange(len(bool_list)):
bool_list[i] = False
一切都很好。但我发现自己在问:“这真的是改变列表中所有元素的最简单的方式吗?”有没有其他更有效或更清晰的方法?
发布于 2009-01-03 23:12:00
bool_list[:] = [False] * len(bool_list)
或
bool_list[:] = [False for item in bool_list]
发布于 2009-01-03 20:13:15
如果您只有一个对列表的引用,则以下操作可能会更容易:
bool_list = [False] * len(bool_list)
这将创建一个用False
元素填充的新列表。
有关类似的示例,请参阅我对Python dictionary clear的回答。
发布于 2009-01-03 20:30:42
这是另一个版本:
bool_list = [False for item in bool_list]
https://stackoverflow.com/questions/409732
复制相似问题