nut*_*hip 2 python tuples strip python-2.7
我有这个清单:
[('', '', '654', 'Tom', '- Jerry', '', '', ''),
('', '', '', '', '', '756', 'X-Man -', 'Batman'),
('453', 'Hulk - Superman', '', '', '', '', '', '')]
Run Code Online (Sandbox Code Playgroud)
如何删除不需要的(主要是外部)字符,使其保持如下:
[('654', 'Tom' , '- Jerry'),
('756', 'X-man' -', Batman'),
('435','Hulk - Superman')]
Run Code Online (Sandbox Code Playgroud)
它是一个元组,所以我想我不能使用这个.strip()方法
谢谢.
使用filter(); 它默认删除`empty'(falsey)值:
[tuple(filter(None, tp)) for tp in inputlist]
Run Code Online (Sandbox Code Playgroud)
演示:
>>> [tuple(filter(None, tp)) for tp in inputlist]
[('654', 'Tom', '- Jerry'), ('756', 'X-Man -', 'Batman'), ('453', 'Hulk - Superman')]
Run Code Online (Sandbox Code Playgroud)
试试这个:
>>> t = [('', '', '654', 'Tom', '- Jerry', '', '', ''),
('', '', '', '', '', '756', 'X-Man -', 'Batman'),
('453', 'Hulk - Superman', '', '', '', '', '', '')]
>>> [tuple(filter(None, i)) for i in t]
[('654', 'Tom', '- Jerry'), ('756', 'X-Man -', 'Batman'), ('453', 'Hulk - Superman')]
Run Code Online (Sandbox Code Playgroud)
filter(None, i)删除任何False-ish值i,只留下非空字符串.
0,False,None以及任何空的容器(例如[],''等)是False-ish值.