问题
I am working on a Linux machine with Python version 3.2.3.
Whenever I try to do list.clear()
I get an exception
>>> l = [1, 2, 3, 4, 5, 6, 7]
>>> l.clear()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'clear'
At the same time on my Mac with Python 3.4.3 the same code runs smoothly. Can it be due to the difference between Python versions or is there something I'm missing?
回答1:
list.clear
was added in Python 3.3.
Citing the Mutable Sequence Types section in the documentation:
New in version 3.3:
clear()
andcopy()
methods.
s.clear()
removes all items froms
(same asdel s[:]
)
See the issue #10516 for the relevant discussion and alternative ways of clearing lists. In summary, it is the same as del l[:]
and l[:] = []
.
来源:https://stackoverflow.com/questions/32055768/python3-attributeerror-list-object-has-no-attribute-clear