Python从列表中删除所有数字

时间:2016-12-22 10:30:04

标签: python-2.7 list int

我有一个unicode元素列表,我试图从中删除所有整数。 我的代码是:

List = [u'123', u'hello', u'zara', u'45.3', u'pluto']

for el in List:
   if isinistance(el, int):
      List.remove(el)

代码不起作用,它给了我与u'123'相同的列表。 我需要的是:

List = [ u'hello', u'zara', u'45.3', u'pluto']

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

您列出的是unicode字符串,显然不是int的实例。您可以尝试在辅助函数中将它们转换为int,并将其用作条件来删除它们/构建新列表。

def repr_int(s):
    try: 
        int(s)
        return True
    except ValueError:
        return False

original_list = [u'123', u'hello', u'zara', u'45.3', u'pluto']

list_with_removed_ints = [elem for elem in original_list if not repr_int(elem)]