Concatenation of Strings and lists
<p>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</p>

<pre><code>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"
</code></pre>

<p>The outcome is this(not what i wanted):</p>

<pre><code>39.2
36.5
37.3
37.8 in Celsius is 102.5697.799.14100.04 in farenheit
</code></pre>

<p>How can I achieve this:</p>

<pre><code>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
</code></pre>

<p><strong>EDIT SORRY MY BAD</strong>
Well, the original code I had was</p>

<pre><code>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))
</code></pre>

<p>But due to reasons I need it to be <strong>within 3 lines</strong></p>

<p>It's probably easiest to do the formatting as you go:</p>

<pre><code>Celsius = [39.2, 36.5, 37.3, 37.8]
def fahrenheit(c):
    return (float(9)/5)*c + 32

template = '{} in Celsius is equivalent to {} in fahrenheit'
print '\n'.join(template.format(c, fahrenheit(c)) for c in Celsius)
</code></pre>

<p><strong>EDIT</strong></p>

<p>If you really want it under 3 lines, we can inline the <code>fahrenheit</code> function:</p>

<pre><code>Celsius = [39.2, 36.5, 37.3, 37.8]    
template = '{} in Celsius is equivalent to {} in fahrenheit'
print '\n'.join(template.format(c, (float(9)/5)*c + 32) for c in Celsius)
</code></pre>

<p>If you don't mind long lines, you could inline <code>template</code> as well and get it down to 2 lines...</p>

<p>However, there really isn't any good reason to do this as far as I can tell.  There is no penalty for writing python code that takes up more lines.  Indeed, there is generally a penalty in the other direction that you pay every time you try to understand a really long complex line of code :-)</p>

python python-2.7