我有一個列表板列表boards
。 boards
包含許多子列表,每個列表中都有相同類型的棋盤。基本上:[[...], [...], ...]
。將每個子列表項與每個其他子列表中的每個項匹配(python)
假設第一個子列表是1,第二個子列表是2.我需要比較1的每個元素與2的每個元素。所以,我需要對(1[0], 2[0]), (1[0], 2[1])...(1[0], 2[len(2)-1]);(1[0], 2[0])...
。
問題是,我不知道boards
有多少個子列表,這意味着我不能僅僅執行n for
循環。這就是我現在所擁有的:
for sublist in boards:
for board in sublist:
for board_indices in itertools.permutations(range(len(sublist)), len(boards)):
matched_boards = [boards[a][j] for a, j in enumerate(i)]
但我認爲我正在超越它。我相信有一個更簡單,更簡單,更可讀的方法來做到這一點,但我不知道它是什麼。
你的問題有點不清楚。你想從'board'中的每一對子列表中生成每一對項目嗎? –
此外,您發佈的代碼有點奇怪。你的'board_indices'循環對'board_indices'中產生的排列沒有任何作用,並且你有一個未定義的變量'i'。 –
@ PM2Ring是的,這是正確的。另外,對於'i'變量我很抱歉,我試圖讓我的代碼更具可讀性,忘記用'board_indices'替換'i'。 – rassar