我正在尝试从用户提供的列表中删除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))
答案 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)]