On 09/06/10 19:37, ceycey wrote:
I have a list like ['1.1881', '1.1881', '1.1881', '1.1881', '1.1881',
'1.1881', '1.1881', '1.1881', '1.1881', '1.1881', '1.7689',  '1.7689',
'3.4225', '7.7284', '10.24', '9.0601', '9.0601', '9.0601', '9.0601',
'9.0601']. What I want to do is to find minimum  and maximum number in
this list.

I used min function,

print min(s)
print max(s)

these gives me

1.181
9.0601

maximum value is wrong. It must be 10.24.

I know why max function gives wrong number. Because max function
processed elements of list as strings. How can I convert the elements
of list to float so max function finds the correct answer.

You can use

  min(float(v) for v in s)
  max(float(v) for v in s)

to return the floating-point number, or in Python2.5+ you can use

  min(s, key=float)
  max(s, key=float)

to get the string source. If you need the source string in pre-2.5, you'd have to do something like

  min((float(v), v) for v in s)[1]   # 2.4
  min([(float(v), v) for v in s])[1] # 2.3 or earlier

and guard against empty input lists.

-tkc




--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to