删除python中列表的不同元素

时间:2017-03-24 15:15:52

标签: python list filter

我有一个这样的清单:

["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之后的数字是格式年,月,日,小时,分钟,秒的时间。

2 个答案:

答案 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']