Benji York wrote: > Raymond Hettinger wrote: > >>[Fredrik Lundh] >> >> >>>it is, however, a bit worrying that you end up ignoring one or more >>>of the values in about 50% of your examples... >> >>It drops to about 25% when you skip the ones that don't care about the >>found/not-found field: >> >> >>>>! _, sep, port = host.partition(':') >>>>! head, sep, _ = path.rpartition('/') >>>>! line, _, _ = line.partition(';') # strip >>>>! pname, found, _ = pname.rpartition('.') >>>>! line, _, _ = line.partition('#') >>>>! filename, _, _ = filename.partition(chr(0)) > > > I know it's been discussed in the past, but this makes me wonder about > language support for "dummy" or "don't care" placeholders for tuple > unpacking. Would the above cases benefit from that, or (as has been > suggested in the past) should slicing be used instead? > > Original: > _, sep, port = host.partition(':') > head, sep, _ = path.rpartition('/') > line, _, _ = line.partition(';') > pname, found, _ = pname.rpartition('.') > line, _, _ = line.partition('#') > > Slicing: > sep, port = host.partition(':')[1:] > head, sep = path.rpartition('/')[:2] > line = line.partition(';')[0] > pname, found = pname.rpartition('.')[:2] > line = line.partition('#')[0] > > I think I like the original better, but can't use "_" in my code because > it's used for internationalization. > -- > Benji York
For cases where single values are desired, attribues could work. Slicing: line = line.partition(';').head line = line.partition('#').head But it gets awkward as soon as you want more than one. sep, port = host.partition(':').head, host.partition(':').sep Ron _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com