混合列表int和str到only int

时间:2020-11-05 11:00:32

标签: python string list sorting integer

我正在尝试从用户提供的列表中删除str,例如[1,a,3,k,k,9,p]我需要保留列表,然后清理该str才能拥有一个唯一的int列表。 我没有下面的代码,但我发现整个列表是str 谢谢

if isinstance(x,int):
        print ('test')
        final_list.append(evaluation_list(x))
        print (mean(final_list))

2 个答案:

答案 0 :(得分:0)

我不确定您尝试的解决方案应该是什么,但是如果您有一个列表li,则只能这样过滤掉整数:

import numbers

int_li = [n for n in li if isinstance(n, numbers.Integral)]

答案 1 :(得分:0)

我假设用户仅输入了字符串,并且您希望将这些字符串转换为整数,同时过滤掉无法转换为整数的字符串。

通过在字符串上调用int可以将字符串转换为类型int( )。如果转换失败,将引发异常ValueError。您可以在try / except块中捕获该异常。

def map_to_int_or_discard(string_list):
  integer_list = []
  for x in string_list:
    try:
      integer_list.append(int(x))
    except ValueError:
      pass
  return integer_list

另一方面,如果您的列表确实包含类型int和类型string的值,则可以使用isinstance( , int)过滤字符串:

def keep_the_int(mixed_list):
  return [x for x in mixed_list if isinstance(x, int)]
相关问题