如何在列表python中交换列表中的项目

我试图随机交换列表中每个列表中的 2 个项目,其中要交换的项目不在另一个列表中。


这是我的代码


import random    



def swap(mylist):

        remain = [[1, 2], [4], [], [8, 2], [1, 4], [5, 2, 1], [], [9, 5], [7]]

        for x in range(0, 9):

            remaining = set(mylist[x]) - set(remain[x])

            to_swap = random.sample(remaining, 2)

            mylist[x][mylist[x].index(to_swap[0])], mylist[x][mylist[x].index(to_swap[1])] = mylist[x][mylist[x].index(to_swap[1])], mylist[x][mylist[x].index(to_swap[0])]

        return mylist



print(swap([[8, 5, 4, 1, 3, 9, 7, 6, 2], [9, 3, 5, 6, 4, 7, 1, 2, 8], [7, 3, 2, 5, 4, 1, 9, 6, 8], [2, 1, 3, 8, 6, 9, 5, 7, 4], [1, 2, 3, 5, 7, 4, 9, 8, 6], [6, 9, 3, 1, 7, 4, 2, 8, 5], [1, 2, 7, 4, 3, 8, 5, 9, 6], [3, 7, 8, 4, 1, 5, 9, 6, 2], [4, 2, 6, 5, 7, 1, 9, 3, 8]]))

每当我运行它并打印出结果时,它只会再次打印出我的输入。


有谁知道我的代码有什么问题?


富国沪深
浏览 158回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python