Thursday, 10 September 2015

Python tricks - Untitled Programming


Using if then else statement in list comprehension:


Traditional way of using list comprehension:

[item for item in list if (condition)]
Here we are using if statement only to filter out the elements.

Another way of using if statement: 

[item_1 if (condition) else item_2 for item in list]

Here If then else statement is not directly implemented in list comprehension. Instead we are using it as a hack. We are actually placing conditional expression in place of the result.

Lets take an example with a problem,
Q) You have a list of characters and you have to switch the case of the characters in the list.
        Input: I AM bhanu
        Output: i am BHANU
This can be done using a single line using list comprehension,

    input = raw_input()
    input =  [ch.lower() if ch == ch.upper() else ch.upper() for ch in input]

    print ''.join(input)