Kode.Error404 - 1 year ago 64

Python Question

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

Answer Source

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