On Sun, Apr 15, 2012 at 8:16 AM, Mahmoud Abdel-Fattah <accou...@abdel-fattah.net> wrote: > Hello, > > I'm coming from PHP background ant totally new to Python, I just started > using scrapy, but has some generic question in python. > > 1. How can I write the following code in easier way in Python ? > if len(item['description']) > 0: > item['description'] = item['description'][0] > else: > item['description'] = '' > > > In PHP I can write it as follows : > $item['description'] = (len(item['description']) > 0) > ? item['description'][0] : ''; > > So, is there similar way in Python ?
You mean the ternary operator? Python has it, but with rather different syntax: item['description'] = item['description'][0] if len(item['description'])>0 else '' There may be other ways of achieving what you want, though; if item['description'] is always going to be a list/tuple, you can simply check the truthiness of it rather than explicitly checking the length (a list or tuple evaluates as true if it has content, false if not). > 2. How can I check if this variable defined or not, in PHP I can use > isset();, in other way, how can I make the following syntax in Python ? > $variable = isset($array['element']) ? true : false; There's two somewhat different things here, and I would distinguish them thus: 1) Finding out if a variable exists (or has had a value assigned to it - in PHP and Python, they're pretty much the same thing) 2) Finding out if an array key exists. PHP uses isset for both. In Python, the first one doesn't make a lot of sense. A variable doesn't exist till it's given a value, and you'll get a NameError if you try to read from it. The easiest way to do what you're looking for is the 'in' operator: does_it_have_it = 'element' in some_dictionary If that's true, then some_dictionary['element'] has a value. Hope that helps! ChrisA PS. Good job moving off PHP and onto Python. It's a marked improvement. :) -- http://mail.python.org/mailman/listinfo/python-list