Python 2.7 Python从列表中删除所有数字

Python 2.7 Python从列表中删除所有数字,python-2.7,list,int,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'include相同。 我需要的是: List = [ u'hello', u'zara', u'45.3', u'pluto'] 有人能帮我

我有一个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'include相同。 我需要的是:

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

有人能帮我吗?

您的列表由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)]

您的列表由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)]

您可以简单地
list\u with\u removed=filter(repr\u int,original\u list)
Yes,当然可以!一些样式指南不鼓励使用这种功能性样式,而是鼓励使用列表理解。因为我确实喜欢Haskell,
filter
也是我的选择,但我会尽可能遵守样式指南。你可以简单地
list\u with\u removed=filter(repr\u int,original\u list)
是的,当然!一些样式指南不鼓励使用这种功能性样式,而是鼓励使用列表理解。因为我确实喜欢Haskell,
filter
也将是我的选择,但我会尽可能地遵循风格指南。