On 9/28/18 2:00 PM, Chris Green wrote:
I have a list created by:-

     fld = shlex.split(ln)

It may contain 3, 4 or 5 entries according to data read into ln.
What's the neatest way of setting the fourth and fifth entries to an
empty string if they don't (yet) exist? Using 'if len(fld) < 4:' feels
clumsy somehow.

Do you care whether there are more than 5 entries in the list?  If not,
then just add two empty strings to the end of the list:

    fld.extend(["", ""])

If fld already contained 5 entries, then the extra two empty strings may
or may not affect the subsequent logic.  If possible extra entries
bother you, then truncate the list:

    fld = (fld + ["", ""])[:5]

Or add empty strings as long as the list contains 5 entries:

    while len(fld) < 5:
        fld.append("")

Which one is "better" or "best"?  Your call, depending on what your
criteria are.  I think the last one expresses the intent the most
clearly, but YMMV.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to