从元组中删除空格

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()方法

谢谢.

Mar*_*ers 5

使用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)


Vol*_*ity 5

试试这个:

>>> 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值.