检查整数值是否在数组中

时间:2018-04-14 18:14:17

标签: python if-statement mouse

我有一个包含键输入和鼠标坐标输入的数组。

该数组包括:[W,A,D,X,mouseX,mouseY]。

下面我找到了检查是否已经完成特定选择的代码;因此,如果用户按下W,则数组会添加[0,1,0,0,mouseX, mouseY]

我的问题是:如何让Python声明mouseX和mouseY可以是任何值,除非它是一个整数,所以我也可以附加这些值?

mouseX = 0
mouseY = 0
for data in train_data:
    img = data[0]
    choice = data[1]
    if choice == [1,0,0,0, mouseX, mouseY]:
        left.append([img,choice])
    elif choice == [0,0,1,0,mouseX, mouseY]:
        right.append([img,choice])
    elif choice == [0,0,0,1,mouseX, mouseY]:
        shoot.append([img,choice])
    elif choice == [0,1,0,0,mouseX, mouseY]:
        forward.append([img,choice])

谢谢!

2 个答案:

答案 0 :(得分:0)

所以你真的只想将列表中的前四项与一些参考列表进行比较。你可以这样做:

if choice[0:4] == [1,0,0,0]:
    left.append([img,choice])

等...

答案 1 :(得分:0)

在编写的代码中,除非mouseX和mouseY等于0,否则永远不会写入数据。要检查mouseX或mouseY是否都是整数,然后检查按键:

for data in train_data:
    img = data[0]
    choice = data[1]
    mouseX = choice[4]
    mouseY = choice[5]
    if int in [type(mouseX), type(mouseY)]:
        choice = None #comparisons will now fail if integer X or Y
    if choice[:4] == [1,0,0,0]:
        left.append([img,choice])
    elif choice[:4] == [0,0,1,0]:
        right.append([img,choice])
    elif choice[:4] == [0,0,0,1]:
        shoot.append([img,choice])
    elif choice[:4] == [0,1,0,0]:
        forward.append([img,choice])

注意如果数据[1]没有6个成员,这将失败。