如何在Python中使用一行代码获得所需的结果?
object_list=[{'applicationName': "ATM Monitoring",
'roamingDrop': "",
'noOfCustomer': None,
'ipAddress': "192.168.1.1",
'url': "www.google.co.in",},
{'applicationName': None,
'roamingDrop': "",
'noOfCustomer': None,
'ipAddress': "192.168.1.1",
'url': "www.google.co.in",}]
需要的结果是将所有的None替换为""
object_list=[{'applicationName': "ATM Monitoring",
'roamingDrop': "",
'noOfCustomer': "",
'ipAddress': "192.168.1.1",
'url': "www.google.co.in",},
{'applicationName': "",
'roamingDrop': "",
'noOfCustomer': "",
'ipAddress': "192.168.1.1",
'url': "www.google.co.in",}]
实现这个功能的简单函数如下:
def simple():
for object in object_list:
for key, value in object.iteritems():
if value:
dict( object, **{key: value})
else:
dict(object, **{key: ''})
还有一个不成功的Python一行代码:
[dict(object, **{key: value}) if value else dict(object, **{key: ''})
for object in object_list for key, value in object.iteritems()]
使用列表推导式能否实现这个一行代码的要求?
None
转换为''
。这样做会丢失信息,却没有任何好处。不清楚你为什么要这样做,更不清楚你为什么要在一行中完成它。 - msw