Kode.Error404 - 1 year ago 82
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
``````

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

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

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download