Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #2698
| From | Peter Otten <__peter__@web.de> |
|---|---|
| Subject | Re: a better way to invert a list? |
| Date | 2011-04-06 11:58 +0200 |
| Organization | None |
| References | <2215eefd-3677-4459-8656-aa04978f6f3f@g7g2000pro.googlegroups.com> <mailman.61.1302039998.9059.python-list@python.org> <ad5aa280-8a34-44db-8e0e-9c1f382a4b2f@a17g2000yqn.googlegroups.com> <a265eb9c-eb57-416d-a71a-1ed755de8901@l30g2000vbn.googlegroups.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.73.1302083939.9059.python-list@python.org> (permalink) |
Glazner wrote:
>> > def invert(p):
>> > inverse = [None] * len(p)
>> > for (i, j) in enumerate(p):
>> > inverse[j] = i
>> > return inverse
>>
>> Elegant. This seems like the best solution, although it isn't as much
>> fun to write as a "one-liner". Thanks
>
>
>>>> invert([1, 2, 3, 1])
> [None, 3, 1, 2] #blah
1 occurs twice in [1, 2, 3, 1] which therefore doesn't describe a
permutation. In general a function has to be "bijective" to be invertable.
You can catch the problem with (untested)
def invert(p):
inverse = [None] * len(p)
for i, k in enumerate(p):
if inverse[k] is not None:
raise ValueError
inverse[k] = i
return inverse
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
a better way to invert a list? scattered <tooscattered@gmail.com> - 2011-04-05 14:17 -0700
Re: a better way to invert a list? Ian Kelly <ian.g.kelly@gmail.com> - 2011-04-05 15:46 -0600
Re: a better way to invert a list? scattered <tooscattered@gmail.com> - 2011-04-05 16:24 -0700
Re: a better way to invert a list? Glazner <yoavglazner@gmail.com> - 2011-04-06 01:48 -0700
Re: a better way to invert a list? scattered <tooscattered@gmail.com> - 2011-04-06 02:48 -0700
Re: a better way to invert a list? Peter Otten <__peter__@web.de> - 2011-04-06 11:58 +0200
Re: a better way to invert a list? Raymond Hettinger <python@rcn.com> - 2011-04-05 17:07 -0700
Re: a better way to invert a list? Paul Rubin <no.email@nospam.invalid> - 2011-04-06 12:51 -0700
Re: a better way to invert a list? Ian Kelly <ian.g.kelly@gmail.com> - 2011-04-06 14:08 -0600
csiph-web