Python:匹配字符串到列表项?

时间:2011-11-02 12:54:34

标签: python

cords = []

for y in range(10):
    for x in range(10):
        cords.append((x, y))

print cords
print cords[11]

user_x=raw_input("X: ")
user_y=raw_input("Y: ")

xy = "("+user_x+", "+user_y+")"
print xy


if xy in cords:
        print "Found Match"

我的问题是,当给出1和1或任何其他匹配时,为什么不打印“找到匹配”?

5 个答案:

答案 0 :(得分:5)

因为字符串永远不会等于元组。

xy = (int(user_x), int(user_y))

答案 1 :(得分:2)

我没有运行代码,但它看起来像:

  

xy =“(”+ user_x +“,”+ user_y +“)”

是这样的字符串:

  

“(3,2)”

您的列表是元组列表。

答案 2 :(得分:1)

因为"("+user_x+", "+user_y+")"会产生一个字符串,而您的cords列表会包含整数元组。

不应该构造一个字符串,而应该将x和y值放在一个元组中,如下所示:

xy = (user_x, user_y)

甚至只是:

if (user_x, user_y) in cords:
    print "Found Match"

答案 3 :(得分:0)

哇。好吧,我可以看到至少有两个问题。

首先,坐标在创建时是整数。 raw_input返回一个字符串。

其次,xy是一个字符串,坐标是元组。

答案 4 :(得分:0)

>>> type(xy)
<type 'str'>
>>> type(cords[11])
<type 'tuple'>