如何检查一个整数或字符串是否存在于列表中。

11 浏览
0 Comments

如何检查一个整数或字符串是否存在于列表中。

我想知道如何检查一个整数是否在列表中。这是我写的一些代码:

# "1"是一个字符串,10是一个整数。
my_list = ["1", 10]
if int in my_list:
    print("Integer in the list!")

这段代码有什么问题?我该如何让它正常工作?

0
0 Comments

如上所述,int == "1"int == 10都是False,所以整体检查结果为False。你想要做的是检查列表中的元素是否是int实例,而不是是否等于int

可以通过使用内置的any生成器表达式更简洁地实现这一点:

if any(isinstance(x, int) for x in my_list):
    ...

请注意,通常情况下,在推断对象的类型时,使用isinstance应优先于type,因为前者考虑了继承关系。

不错的选择。有点复杂,但绝对是更好的选择。

我还有一个问题,如何检查一个项目不是一个str?

同样的技巧适用,只需检查元素是否不是字符串。我假设你熟悉not运算符?

0
0 Comments

这个问题的出现是因为在Python中,int == 10的结果是False。在Python中,int是一个类,而10是该类的一个实例。尽管如此,它们并不等同于彼此。

要解决这个问题,首先需要进行一些预处理。有许多方法可以做到这一点,最终取决于你的目标是什么。以下是一个示例:

my_list = ["1", 10]
# 创建一个新的列表,存储my_list中每个元素的类型
types = [type(x) for x in my_list]
if int in types:  # 对类型进行检查,而不是对实例本身进行检查
    print("列表中存在整数!")

假设这是最简单的方法?

如果你真的想使用in语句,那么这可能是最简单的方法。另一种方法是使用for x in my_list:循环,并在循环内部使用if type(x) == int:进行检查。

0