混合列表 ints 和 str 到只有 int

Mixed list ints and str into only int

我正在尝试从用户提供的列表中删除 str,例如 [1,a,3,k,k,9,p] 我需要保留列表,然后清理 str 到 then有一个只有 int 的列表。 我没有像下面的代码那样的东西,但我发现整个列表都是 str 谢谢

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

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

import numbers

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

我假设用户只输入了字符串,你想将这些字符串转换为整数,同时过滤掉不能转换为整数的字符串。

将字符串转换为 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):[= 过滤掉字符串20=]

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