problem about list indexing

John Machin sjmachin at lexicon.net
Sun Nov 26 06:07:25 EST 2006


Steven D'Aprano wrote:
> On Sun, 26 Nov 2006 00:25:13 -0800, hollowspook wrote:
>
> > Hi, there
> >
> > a = range(100)
> >
> > if I want to use No 7, 11, 56,90 in a, then the only way I do is [a[7],
> > a[11], a[56], a[90]].
> > Is there any other way?
>
> a = [7, 11, 56, 90]
>
> Are those numbers supposed to be in some sort of series? They aren't an
> arithmetic series:
>
> (11 - 7) = 4
> (56 - 11) = 45  # not a constant difference
>
> nor are they a geometric series:
>
> (11/7) = 1.57
> (56/11) = 5.09  # not a constant ratio
>
> They don't look like some form of a Fibonacci series:
>
> 7+11 != 56
> 11+56 != 90
>
> If they're just "random" numbers, plucked out of thin air, then you
> probably can't calculate them and you'll need to just create them in a
> list a = [7, 11, 56, 90].
>

Actually, it's a cubic polynomial ;-)

| >>> def f(x):
| ...     return (
| ...         7
| ...         + 4 * x
| ...         + 41 * x * (x - 1) // 2
| ...         - 52 * x * (x - 1) * (x - 2) // 6
| ...         )
| ...
| >>> [f(x) for x in range(4)]
|  [7, 11, 56, 90]

HTH,
John




More information about the Python-list mailing list