fescue
fescue

Reputation:

Convert list of lists to delimited string

How do I do the following using built-in modules only?

I have a list of lists like this:

[['dog', 1], ['cat', 2, 'a'], ['rat', 3, 4], ['bat', 5]]

And from it, I'd like to produce a string representation of a table like this where the columns are delimited by tabs and the rows by newlines.

dog 1
cat 2   a
rat 3   4
bat 5

i.e.

'dog\t1\ncat\t2\ta\nrat\t3\t4\nbat\t5'

Upvotes: 7

Views: 9903

Answers (2)

Konrad Rudolph
Konrad Rudolph

Reputation: 545588

Like this, perhaps:

lists = [['dog', 1], ['cat', 2, 'a'], ['rat', 3, 4], ['bat', 5]]
result = "\n".join("\t".join(map(str,l)) for l in lists)

This joins all the inner lists using tabs, and concatenates the resulting list of strings using newlines.

It uses a feature called list comprehension to process the outer list.

Upvotes: 19

Dave
Dave

Reputation: 10575

# rows contains the list of lists
lines = []
for row in rows:
    lines.append('\t'.join(map(str, row)))
result = '\n'.join(lines)

Upvotes: 4

Related Questions