python使用list comprehensions或其他东西替换列表中的空白?也是嵌套列表解决方案

jas*_*son 1 python list-comprehension

a = [None, None, '2014-04-27 17:31:17', None, None]

试图取代None''

尝试了很多次,这是我得到的最接近的.b= ['' for x in a if x==None]这给了我四个,''但没有留下日期

我认为它会b= ['' for x in a if x==None else x]但不起作用.

如果嵌套如下:

a = [[None, None, '2014-04-27 17:31:17', None, None],[None, None, '2014-04-27 17:31:17', None, None],[None, None, '2014-04-27 17:31:17', None, None]]

你还能使用列表推导吗?

ssh*_*124 9

只需修改您的代码如下:

b = ['' if x is None else x for x in a]    #and use is None instead of == None

>>> print b
['', '', '2014-04-27 17:31:17', '', '']
Run Code Online (Sandbox Code Playgroud)

说明

对于嵌套列表,您可以执行以下操作:

b = [['' if x is None else x for x in c] for c in a]
Run Code Online (Sandbox Code Playgroud)


vin*_*var 5

您甚至不必使用理解:

a = map(lambda x: '' if x == None else x, a)