(Python) 我在使用列表理解方法查找 [“a”, 1 , 4 ,6 ,”b” , “d” ,7 , “o”] 列表的整数值时遇到问题
(Python) I am having trouble Finding the integer values form [“a”, 1 , 4 ,6 ,”b” , “d” ,7 , “o”] list using list comprehension method
这是我执行的以下代码,但我想要的答案应该是 [1, 4, 6, 7] 但输出是 [False, True, True, True, False, False, True , 错误的]...
请指导我如何获得所需的输出。
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
的原因:What are the differences between type() and isinstance()?.
做到这一点有很长的路要走,也有很短的路要走:
短:
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)
你做的很好,之所以打印(result_list) returns boolean values 是因为它returning type (x) == 比较的结果整数
为了 return 列表中的 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]
这是我执行的以下代码,但我想要的答案应该是 [1, 4, 6, 7] 但输出是 [False, True, True, True, False, False, True , 错误的]... 请指导我如何获得所需的输出。
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
的原因:What are the differences between type() and isinstance()?.
做到这一点有很长的路要走,也有很短的路要走: 短:
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)
你做的很好,之所以打印(result_list) returns boolean values 是因为它returning type (x) == 比较的结果整数
为了 return 列表中的 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]