No doubt! But since we're on the subject of "how to make code like this better" it seems appropriate to discuss what's really wrong with the code, rather than just what sort of duct tape style guidelines we can use to patch over its flaws :)
Very often we can't change the API (standard library or such). Should we not change our code to address the issue as best we can?
This is Python. Subclass it and fix the problem, unless the guts are so opaque that your code would be littered with subclasses and you can't figure out an elegant, general way of fixing it (unlikely).
This is Sparta.
class SpartanList(list):
def foot(self):
return self[0]
assert l.foot()
return l.foot()