繁体   English   中英

检查项目是否存在于每个嵌套列表中的相同 position - Python

[英]Check if item exists in same position in each nested list - Python

我正在写一个 Connect Four 脚本。 该脚本将移动列表作为输入( "A_Red, "B_Yellow", "G_Red"等),我将其分类为矩阵。每个嵌套列表代表棋盘的一列,其中“A”是第一个嵌套列表(或列),“G”是最后一个嵌套列表(或列)。移动将像这样排序:

带有一些动作的棋盘类似于:

[ ["Red, "Yellow"], ["Red"], ["Yellow", "Yellow"], [], [], [], [] ]

一旦所有的移动都被分类到它们各自的嵌套列表中,我用空字符串 ("") 填充每个嵌套列表,以防止任何“列表索引超出范围错误”,用于执行 4 行检查的for循环.

如何在没有for循环的情况下检查每个嵌套列表的第 4 个元素 ( index[3] ) 是否包含"Red""Yellow"

如果此条件为真,则将执行对角线检查,我只需要执行一次。

board = [["Red", "Yellow", "Red", "Yellow"], [], [], ["Red", "Yellow", "Red", "Yellow"], [], [], []]
for i in range (0, 7):
   if board[i][3]:
       # Perform Diagonal Check

上面代码的问题是,当在任何嵌套列表中的第四个 position 中识别出任何“红色”或“黄色”部分时,我只需要执行一次对角线检查。 通过上面for循环,会对第四个position中的每一项进行7次检查。

是否可以在不去的情况下检查一系列列表位置:

if board[0][3] or board[1][3] or board[2][3]... == "Yellow" or "Red": #etc...

要检查每个子列表中的第 4 个元素,请使用以下代码:

mylist = [[1, 2, 3, 0, 4], [5, 6, 7, 0, 8], [9, 1, 2, 0, 3]]

fourth_element_check = [x[3] for x in mylist]

if 0 in fourth_element_check:
    print ("0 is the fourth element of a list")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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