Python: split list items

As a continuation of this question: split list items in python

Given a list:

l = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847', '']

How to get everything after \t?

I tried:

>>> [i.split('\t', 1)[1] for i in t]                                                                                                                           
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range

Is it because I have ''in the end? How to exclude it?

+4
source share
2 answers
In [175]: l = ['element1\t0238.94', 'element2\t2.3904', 'element3\t0139847', '']

In [176]: [i.partition('\t')[-1] for i in l]
Out[176]: ['0238.94', '2.3904', '0139847', '']

Or, if you only want to consider elements with '\t'in them:

In [177]: [i.partition('\t')[-1] for i in l if '\t' in i]
Out[177]: ['0238.94', '2.3904', '0139847']
+5
source

Your case is simpler because you can use that we throw everything away before the tab:

l = [x.split('\t')[-1] for x in l]
['0238.94', '2.3904', '0139847', '']

, [-1] [1], IndexError, ('', '\ t') ['']. '-1' " ", -1 1, , 0, 1.

+4

Source: https://habr.com/ru/post/1537031/


All Articles