我有一个布尔值列表,偶尔我会将它们全部重置为假。首次写入重置后,重置为:

for b in bool_list:
    b = False

我发现它不起作用。我花了一点时间挠头,然后记得这当然不会起作用,因为我只是在改变对bool的引用,而不是它的值。所以我重写为:
for i in xrange(len(bool_list)):
    bool_list[i] = False

一切正常。但我发现自己在问,“这真的是改变列表所有元素的最蟒蛇的方法吗?”有没有其他方法可以更有效或更清晰?

最佳答案

bool_list[:] = [False] * len(bool_list)


bool_list[:] = [False for item in bool_list]

关于python - 改变列表的元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/409732/

10-12 23:16