Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Removing dates from Python lists

I have bunch of lists containing strings, I wanna remove some string dates such as '2017-09-11', '2017-09-17', '2015-09-11' from these dictionaries. How can I do it?

WNT5 = ['RBPMS', 'TRIM2', 'GPM6A', 'TACC1', '2017-09-06', 'PARVA', 'RPS28', 'MAN1C1', 'LOXL2', 'PTPRB', 'STAG2', 'SFRS15', 'PDS5B', 'SWAP70', 'ZMIZ2', 'TPD52', 'OGT', 'RSU1', 'TGFBR3', 'NFAT5', 'ANGPT1', 'SLC25A36', 'NFIB', 'FBXO9', 'N4BP2L2', 'CCDC69', 'MYH11', 'LPP', 'USP34', 'ITIH5', 'GLS', 'SORBS2', 'TMEM43', 'ANK3', 'PSIP1', 'SYNPO2', 'C9orf5', 'BCL2', 'NSMAF', 'MLXIP', 'PDE8B', 'RABGAP1', 'RPS15A', 'NLRP12', 'AKAP1', 'PLK1S1', 'SLC4A4', 'COBLL1', 'ARHGEF7', 'CD47', 'TMEM132A', 'TNK2', 'WWC1', 'RPL22', 'NMT2', 'TNXB', 'SCPEP1', 'TTLL5', 'MAGI1', 'GOLGA2B', 'TIMELESS', 'ITPR1', 'ALMS1', 'TLE2', 'MAPT', 'DIP2A', 'PCGF3', 'CYP3A4', 'RALGPS1', 'N4BP2L1', 'DIO2', 'PPP1R3C', 'LRIG1', 'NSMCE4A', 'GPX2', 'SETBP1', 'SLC6A16', 'ARL5A']
like image 548
Ajml Avatar asked Jan 21 '26 03:01

Ajml


1 Answers

Using list comprehension, you will get a new list without date string:

>>> def is_date_string(s):
...     # return re.search(r'^\d{4}-\d{2}-\d{2}$')
...     return '-' in s and s[:4].isdigit()  # NOTE not perfect, change as you need
... 
>>> [s for s in WNT5 if not is_date_string(s)]
['RBPMS', 'TRIM2', 'GPM6A', 'TACC1', 'PARVA', 'RPS28',
 'MAN1C1', 'LOXL2', 'PTPRB', 'STAG2', 'SFRS15', 'PDS5B', 'SWAP70',
 'ZMIZ2', 'TPD52', 'OGT', 'RSU1', 'TGFBR3', 'NFAT5', 'ANGPT1',
 'SLC25A36', 'NFIB', 'FBXO9', 'N4BP2L2', 'CCDC69', 'MYH11', 'LPP',
 'USP34', 'ITIH5', 'GLS', 'SORBS2', 'TMEM43', 'ANK3', 'PSIP1',
 'SYNPO2', 'C9orf5', 'BCL2', 'NSMAF', 'MLXIP', 'PDE8B', 'RABGAP1',
 'RPS15A', 'NLRP12', 'AKAP1', 'PLK1S1', 'SLC4A4', 'COBLL1', 'ARHGEF7',
 'CD47', 'TMEM132A', 'TNK2', 'WWC1', 'RPL22', 'NMT2', 'TNXB',
 'SCPEP1', 'TTLL5', 'MAGI1', 'GOLGA2B', 'TIMELESS', 'ITPR1', 'ALMS1',
 'TLE2', 'MAPT', 'DIP2A', 'PCGF3', 'CYP3A4', 'RALGPS1', 'N4BP2L1',
 'DIO2', 'PPP1R3C', 'LRIG1', 'NSMCE4A', 'GPX2', 'SETBP1', 'SLC6A16',
 'ARL5A']

To replace the WNT5, assign back the list comprehension:

WNT5 = [s for s in WNT5 if not is_date_string(s)]

or using slice (to replace items in-place):

WNT5[:] = [s for s in WNT5 if not is_date_string(s)]
like image 76
falsetru Avatar answered Jan 23 '26 16:01

falsetru



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!