繁体   English   中英

如何从集合中的(x,y)坐标返回x值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM