Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #83199
| From | Jussi Piitulainen <jpiitula@ling.helsinki.fi> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: Help with map python 2 |
| Date | 2015-01-04 14:08 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <qotoaqe7nol.fsf@ruuvi.it.helsinki.fi> (permalink) |
| References | <60e62263-6cd1-48b9-acbc-f1a0b947b8c9@googlegroups.com> |
flebber writes: > In repsonse to this question: Write a program that prints the first > 100 members of the sequence 2, -3, 4, -5, 6, -7, 8. > > This is my solution it works but ugly. Seems respectable to me, except that you are taking fewer than 100 elements. But I'd prefer the expressions that you are looking for. > series = range(2,100) > # answer = [(x,(y* -1)) for x, y in series[::2]] You could do what mathematicians do when they deal with alternating signs: they raise -1 to the power of the index to get an appropriate multiplier. >>> [ n * (-1) ** n for n in range(10) ] [0, -1, 2, -3, 4, -5, 6, -7, 8, -9] >>> Or you could do here what you attempt to do with map below. See below. > # print(answer) > answer = [] > for item in series: > if item % 2 != 0: > answer.append(item * -1) > else: > answer.append(item) > > print(answer) > > I know I should be better off doing this with map but cannot get it > to work. I understand also that map returns a generator so this > solution should only working in python2(correct me please if I am > wrong). > > In [6]: map? > Type: builtin_function_or_method > String Form:<built-in function map> > Namespace: Python builtin > Docstring: > map(function, sequence[, sequence, ...]) -> list > > Just getting something wrong > list(map((lambda x: x * -1 if (x%2 != 0)), series)) You are trying to use a binary expression. There are no binary expressions. Add an else branch to make it ternary: lambda x : x if x % 2 == 0 else -x But never mind the number of branches, the serious point is that you didn't specify a value for when the condition is not true. It doesn't make sense without that. There's nothing wrong with a list comprehension, or the corresponding generator expression if you want a generator. It's fine. Map's fine.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Help with map python 2 flebber <flebber.crue@gmail.com> - 2015-01-04 03:34 -0800
Re: Help with map python 2 Chris Angelico <rosuav@gmail.com> - 2015-01-04 22:47 +1100
Re: Help with map python 2 Alec Taylor <alec.taylor6@gmail.com> - 2015-01-04 22:47 +1100
Re: Help with map python 2 Alec Taylor <alec.taylor6@gmail.com> - 2015-01-04 22:48 +1100
Re: Help with map python 2 Jussi Piitulainen <jpiitula@ling.helsinki.fi> - 2015-01-04 14:08 +0200
Re: Help with map python 2 flebber <flebber.crue@gmail.com> - 2015-01-05 03:33 -0800
Re: Help with map python 2 Terry Reedy <tjreedy@udel.edu> - 2015-01-05 18:28 -0500
Re: Help with map python 2 Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-06 12:30 +1100
Re: Help with map python 2 Peter Otten <__peter__@web.de> - 2015-01-04 17:33 +0100
Re: Help with map python 2 Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-01-04 12:32 -0500
Re: Help with map python 2 Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2015-01-04 12:41 -0500
Re: Help with map python 2 Dan Stromberg <drsalists@gmail.com> - 2015-01-04 10:06 -0800
Re: Help with map python 2 Terry Reedy <tjreedy@udel.edu> - 2015-01-04 16:13 -0500
Re: Help with map python 2 flebber <flebber.crue@gmail.com> - 2015-01-05 03:37 -0800
Re: Help with map python 2 Sayth Renshaw <flebber.crue@gmail.com> - 2015-01-04 21:22 +0000
csiph-web