(Python)我在使用列表理解方法查找["a",1,4,6,"b","



这是我执行的以下代码,但我想要的答案应该是[1,4,6,7],但输出是[False,True,True,False,False,True,False]。。。请指导我如何获得所需的输出。

a_list = ["a", 1, 4, 6, "b", "d", 7, "o"]
result_list = [(type(x) == int) for x in a_list]
print(result_list)

[(type(x) == int) for x in a_list]的意思是:用(type(x) == int)的值(布尔值(填充列表,其中元素x来自a_list。因此,这个列表理解创建了一个布尔值列表。

您希望获得a_list中满足某些条件的所有项。所以,使用这个:

[
x # get all items of `a_list`...
for x in a_list
if isinstance(x, int) # ...that satisfy this
]

以下是为什么应该使用isinstance(x, int)而不是type(x) == int:type((和isinstance((之间有什么区别?。

您做得很好,print(result_list(之所以返回布尔值,是因为它返回了类型(x(==int中的比较结果。

为了返回列表中的int值,您需要说对于x,其中x是a_list中的值,如果其类型为int,则将该值存储在新列表中。我将整数的结果列表命名为result_num_list。请参阅下面的代码片段:

a_list = ["a", 1, 4, 6, "b", "d", 7, "o"]
result_num_list = [x for x in a_list if type(x)==int]
print(result_num_list)

输出为[1,4,6,7]

要做到这一点有很长的路要走,也有很短的路:简称:

a_list = ["a", 1, 4, 6, "b", "d", 7, "o"]
result_list = [x for x in a_list if (type(x) == int)]
print(result_list)

长(但更容易阅读(:

a_list = ["a", 1, 4, 6, "b", "d", 7, "o"]
result_list = []
for i in a_list:
if type(i) == int:
result_list.append(i)
print(result_list)

相关内容

  • 没有找到相关文章

最新更新