I have Googled, but couldn't find a proper answer to this.
Let's say we have floats and we get their averages. Their averages are like this:
# I have a list of numbers and I am calculating their average and rounding them first.
get_numbers = map(float, line[-1])
average_numbers = sum(get_numbers) / len(get_numbers)
rounded_numbers= round(average_numbers * 2) / 2
# So now, I've got the numbers: 3.5, 2.5, 5, 7
print "The numbers are: %.1f" % (rounded_numbers)
You can use floats' is_integer method. It returns
True if a float can be represented as an integer (in other words, if it is of the form
li = [3.5, 2.5, 5.0, 7.0] print([int(num) if float(num).is_integer() else num for num in li]) >> [3.5, 2.5, 5, 7]
After OP added their code:
Instead of using list comprehension like in my original example above, you should use the same logic with your calculated average:
get_numbers = map(float, line[-1]) # assuming line[-1] is a list of numbers average_numbers = sum(get_numbers) / len(get_numbers) average = round(average_numbers * 2) / 2 average = int(average) if float(average).is_integer() else average print average # this for example will print 3 if the average is 3.0 or # the actual float representation.