Kode.Error404 Kode.Error404 - 3 months ago 12
Python Question

Concatenation of Strings and lists

In the following python script, it converts the Celsius degree to Fahrenheit but I need to join two list with strings between and after them

Celsius = [39.2, 36.5, 37.3, 37.8]
fahrenheit = map(lambda x: (float(9)/5)*x + 32, Celsius)
print '\n'.join(str(i) for i in Celsius)+" in Celsius is "+''.join(str(i) for i in fahrenheit )+" in farenheit"


The outcome is this(not what i wanted):

39.2
36.5
37.3
37.8 in Celsius is 102.5697.799.14100.04 in farenheit


How can I achieve this:

39.2 in Celsius is equivalent to 102.56 in fahrenheit
36.5 in Celsius is equivalent to 97.7 in fahrenheit
37.3 in Celsius is equivalent to 99.14 in fahrenheit
37.8 in Celsius is equivalent to 100.04 in fahrenheit


EDIT SORRY MY BAD
Well, the original code I had was

def fahrenheit(T):
return ((float(9)/5)*T + 32)
def display(c,f):
print c, "in Celsius is equivalent to ",\
f, " in fahrenheit"
Celsius = [39.2, 36.5, 37.3, 37.8]
for c in Celsius:
display(c,fahrenheit(c))


But due to reasons I need it to be within 3 lines

Answer

3 lines:

>>> Celsius = [39.2, 36.5, 37.3, 37.8]
>>> msg = '%g in Celsius is equivalent to %g in Fahrenheit'
>>> print '\n'.join(msg % (c, (9. * c)/5. + 32.) for c in Celsius)

yields:

39.2 in Celsius is equivalent to 102.56 in Fahrenheit
36.5 in Celsius is equivalent to 97.7 in Fahrenheit
37.3 in Celsius is equivalent to 99.14 in Fahrenheit
37.8 in Celsius is equivalent to 100.04 in Fahrenheit

Comments