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