On Mon, Jun 18, 2018 at 2:55 PM Mikhail V <mikhail...@gmail.com> wrote:
> On Mon, Jun 18, 2018 at 11:43 PM, Michael Selik <m...@selik.org> wrote: > > On Mon, Jun 18, 2018 at 12:56 PM Mikhail V <mikhail...@gmail.com> wrote: > >> Numpy arrays have also append() and insert() methods, > > In [2]: np.arange(1).append(2) > > AttributeError: 'numpy.ndarray' object has no attribute 'append' > https://docs.scipy.org/doc/numpy/reference/generated/numpy.append.html Perhaps NumPy chose not to provide an append method to discourage repeated appends, since it's terribly slow. It's a good design philosophy: make inefficient code look appropriately ugly. > On Mon, Jun 18, 2018 at 1:08 PM Joao S. O. Bueno <jsbu...@python.org.br> > As for examples - below is one example from 'pyparsing' module. > But I don't advise to think about "why" but rather just relax and > try to 'traverse' the code back and forth several times. > That's interesting advice. I contrast, I find it's best to aggressively ask "Why?" and to rewrite the code in order to fully understand it. I think I found the chunk of code you're referring to. https://github.com/pyparsing/pyparsing/blob/master/pyparsing.py#L848 First, I'll note that ``dump`` usually indicates dumping to a file, while ``dumps`` is dumping to a str. Regardless, I think this ``dump`` function could be improved a bit, and a revision reduces the benefit of a dedicated ``append`` operator. if not full: return indent + _ustr(self.asList()) lines = [_ustr(self.asList())] if self.haskeys(): fmt = ' ' * depth + '- %s: %s' for k, v in sorted((str(k), v) for k, v in self.items()): if isinstance(v, ParseResults): if v: s = v.dump(indent, depth + 1) else: s = _ustr(v) else: s = repr(v) lines.append(fmt % (k, s)) elif any(isinstance(v, ParseResults) for v in self): for i, v in enumerate(self): lines.append(' ' * depth + '[%d]:' % i) if isinstance(v, ParseResults): s = v.dump(indent, depth + 1) else: s = _ustr(v) lines.append(' ' * (depth + 1) + s) return ('\n' + indent).join(lines)
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/