Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #49381
| From | Terry Reedy <tjreedy@udel.edu> |
|---|---|
| Subject | Re: ? get negative from prod(x) when x is positive integers |
| Date | 2013-06-28 11:30 -0400 |
| References | <CALyJZZUcfwJGbn_UqCmsUUcv9MaimyD+vjjW+d64wVc0G0f92A@mail.gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.3963.1372433452.3114.python-list@python.org> (permalink) |
On 6/28/2013 10:38 AM, Vincent Davis wrote:
> I have a list of a list of integers. The lists are long so i cant really
> show an actual example of on of the lists, but I know that they contain
> only the integers 1,2,3,4. so for example.
> s2 = [[1,2,2,3,2,1,4,4],[2,4,3,2,3,1]]
>
> I am calculating the product, sum, max, min.... of each list in s2 but I
> get negative or 0 for the product for a lot of the lists. (I am doing
> this in ipython)
Based on Python2 (from print output). Look at the underlying version to
make sure it is 2.7. Using Python 3 or something based on it is better
unless you *really* have to use Python 2.
> for x in s2:
> print('len = ', len(x), 'sum = ', sum(x), 'prod = ', prod(x), 'max
> = ', max(x), 'min = ', min(x))
prod is not a Python builtin. I am guessing ipython adds it as a C-coded
builtin because a Python-coded function* would not have the overflow bug
exhibited below. See for instance
https://en.wikipedia.org/wiki/Integer_overflow
Not having to worry about this, because Python comes with
multi-precision integers, is a great thing about using Python rather
than almost any other language.
* I do not remember it this was always true for old enough Pythons.
> ('len = ', 100, 'sum = ', 247, 'prod = ', 0, 'max = ', 4, 'min = ', 1)
> ('len = ', 100, 'sum = ', 230, 'prod = ', -4611686018427387904, 'max = ', 4, 'min = ', 1)
def prod(seq):
res=1
for i in seq:
res *= i
return res
should work for you.
--
Terry Jan Reedy
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: ? get negative from prod(x) when x is positive integers Terry Reedy <tjreedy@udel.edu> - 2013-06-28 11:30 -0400
csiph-web