我有一个这样的清单:
["Dog owner writes for dying cat", **datetime.datetime(2014,4,3,16,21,57), ''**, "Get him a ball", **datetime.datetime(2015,11,20,19,18,23), ''**]
此列表中有许多元素,例如datetime.datetime(2015,11,20,16,21,57)
和''
。我该如何删除它们?
备注1:''在datetime.datetime(2015,4,3,16,21,57)之后是一对单引号。
备注2:显然,datetime之后的数字是格式年,月,日,小时,分钟,秒的时间。
答案 0 :(得分:3)
使用缺少的项目创建一个新列表比从列表中删除它们更有意义。
作为for-loop
AS <= 70% - 100% Green,
AS <= 20% - 69% - Yellow,
AS <= 0% - 19% - Red
作为列表理解
cleaned = []
for i in my_list:
if type(i) is str and i != ""
cleaned.append(i)
答案 1 :(得分:2)
您只需使用列表解析过滤掉datetime
个对象和空字符串:
[x for x in lis if '' != x and type(x) is not datetime.datetime]
其中lis
是原始列表。这将仅删除datetime.datetime
个对象和空字符串。所以如果列表包含列表,整数等;那些没有过滤掉。
这会产生:
>>> [x for x in lis if '' != x and type(x) is not datetime.datetime]
['Dog owner writes for dying cat', 'Get him a ball']