How is this evaluated

Arturo B a7xrturodev at gmail.com
Thu Jul 4 13:20:43 EDT 2013


I'm making this exercise: (Python 3.3)

Write a function translate() that will translate a text into "rövarspråket" (Swedish for "robber's language"). That is, double every consonant and place an occurrence of "o" in between. For example, translate("this is fun") should return the string "tothohisos isos fofunon".

So I tried to solved it, but I couldn't, so I found many answers, but I selected this:

def translate(s):
  consonants = 'bcdfghjklmnpqrstvwxz'
  return ''.join(l + 'o' + l if l in consonants else l for l in s)
    
print(translate('hello code solver'))


OUTPUT:
'hohelollolo cocodode sosololvoveror'

______________________________________________________________
So I want to question:
How is the 

if 'h' in consonants else 'h' for 'h' in s

part evaluated? (step by step please :P )

''.join('h' + 'o' + 'h' if 'h' in consonants else 'h' for 'h' in s)

Thank you guys



More information about the Python-list mailing list