"aurora" wrote: > The only issue is when s does not contain the character '=', let's say it is > 'xyz', the result > list has a len of 1 and the unpacking would fail. Is there some really handy > trick to pack the > result list into len of 2 so that it unpack as name='xyz' and value=''?
do you need a trick? spelling it out works just fine: try: key, value = field.split("=", 1) except: key = field; value = "" or if "=" in field: key, value = field.split("=", 1) else: key = field; value = "" (the former might be slightly more efficient if the "="-less case is uncommon) or, if you insist: key, value = re.match("([^=]*)(?:=(.*))?", field).groups() or key, value = (field + "="["=" in field:]).split("=", 1) but that's not really worth the typing. better do key, value = splitfield(field) with a reasonable definition of splitfield (I recommend the try-except form). > So more generally, is there an easy way to pad a list into length of n with > filler items appended > at the end? some variants (with varying semantics): list = (list + n*[item])[:n] or list += (n - len(list)) * [item] or (readable): if len(list) < n: list.extend((n - len(list)) * [item]) etc. </F> -- http://mail.python.org/mailman/listinfo/python-list