Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to quickly parse a list of strings

Tags:

If I want to split a list of words separated by a delimiter character, I can use

>>> 'abc,foo,bar'.split(',')
['abc', 'foo', 'bar']

But how to easily and quickly do the same thing if I also want to handle quoted-strings which can contain the delimiter character ?

In: 'abc,"a string, with a comma","another, one"'
Out: ['abc', 'a string, with a comma', 'another, one']

Related question: How can i parse a comma delimited string into a list (caveat)?

like image 323
math Avatar asked Dec 01 '08 13:12

math


People also ask

How do I split a list into a string?

To convert a list to a string, use Python List Comprehension and the join() function. The list comprehension will traverse the elements one by one, and the join() method will concatenate the list's elements into a new string and return it as output.

How do you split a list into multiple strings in Python?

To split a list into n parts in Python, use the numpy. array_split() function. The np. split() function splits the array into multiple sub-arrays.


1 Answers

import csv

input = ['abc,"a string, with a comma","another, one"']
parser = csv.reader(input)

for fields in parser:
  for i,f in enumerate(fields):
    print i,f    # in Python 3 and up, print is a function; use: print(i,f)

Result:

0 abc
1 a string, with a comma
2 another, one
like image 137
Tomalak Avatar answered Oct 02 '22 18:10

Tomalak