[英]How to compare values in a list with a specific integer value?
我有一个函数返回说[1],[1,2],[1,2,3]或[1,2,3,4]。 我想将列表中的值与某个值(例如0.2)进行比较。
在此之前,我只有一个来自函数的整数值,而不是要与0.2比较的值列表。
# this function gives a list as mentioned previously
iou_value = oneObject.intersection_over_union(image,humanPos,belongings_bb)
if iou_value is not None and iou_value > 0.2:
如何在这种情况下编写if条件,以将列表值与0.2进行比较?
谢谢
取决于您到底想要什么,但是最可能的列表理解将帮助您:
compared_list = [1 for elem in iou_value if elem > 0.2 else 0]
会在相应的索引处给您1和0
编辑:如果要基于比较将元素分开:
geq = [elem for elem in iou_value if elem >= 0.2]
less = [elem for elem in iou_value if elem < 0.2]
编辑2:如果要使用if条件进行简单循环:
for elem in iou_value:
if elem >= 0.2:
#do what you want if geq
else:
#do what you want if less
您可以使用any()
例如:
a = [1,2,3,4]
if any(iou_value > 0.2 for iou_value in a):
print("Yes")
else:
print("No")
您需要遍历列表以比较每个值,如下所示:
if iou_value is not None:
for v in iou_value:
if v > 0.2:
print(f'{v} is greater than 0.2')
您可能需要调整方法,以便不返回None
而是返回一个空列表[]
,这样, if io_value is not None
检查,您还可以删除它。
一个简单的if
条件可以做到这一点:
In [2090]: l = [1,2,3,4]
In [2091]: val = 0.2
In [2093]: for i in l:
...: if i > val:
...: print('{} is greater than {}'.format(i,val))
...:
1 is greater than 0.2
2 is greater than 0.2
3 is greater than 0.2
4 is greater than 0.2
或使用list comprehensions
:
In [2096]: ['yes' for i in l if i > val]
Out[2096]: ['yes', 'yes', 'yes', 'yes']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.