[英]How to return x value from (x,y) coordinates in a set
def has_x_value(cs,x):
tuple_convert = list(cs)
x_values = [x[0] for x in tuple_convert]
for i in x_values:
if i == x:
return True
else:
return False
a = has_x_value({(2,4), (1,5), (6,3), (2,2)},2)
b = has_x_value({(14,14), (13,9), (13,16), (10,12)},10)
print(a)
print(b)
我正在尝试制作一个 function 如果集合包含 x 坐标则返回 True,否则返回 False。 我写了上面的代码,但是它对a返回True,对b返回False,但我不明白为什么它对b返回False。
因为您在循环内的两个分支中都return
,所以您当前的代码相当于:
def has_x_value(cs, x):
tuple_convert = list(cs)
x_values = [x[0] for x in tuple_convert]
if x_values[0] == x:
return True
else:
return False
如您所见,您只检查第一个坐标。
只有在没有找到坐标的情况下才需要return False
:
def has_x_value(cs, x):
x_values = [x[0] for x in cs]
for i in x_values:
if i == x:
return True
return False
然后可以将其转换为更简单的:
def has_x_value(cs, x):
x_values = [x[0] for x in cs]
return x in x_values
甚至只是:
def has_x_value(cs, x):
return any(x == coord[0] for coord in cs)
tuple_convert
不是必需的,您可以对集合进行相同的迭代。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.