如何保留附加到python列表的值

请使用此代码获取帮助。我希望mylist在下次调用函数'no_repeat_rule'时保留附加在其后的值。我是python的新手。我的代码如下:


def no_repeat_rule(play_board):


    mylist = list()

    if seeds_left(play_board) == 2 and sum(play_board[:6])== 1:

        mylist.append(play_board)

        return mylist

此代码的输出(部分)为:...


[[1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]]


Player 1 chose cup  0


[[0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]]


Player 2 chose cup 6


[[0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]]

...


我想要功能'no_repeat_rule'要做的是每次播放玩家时增加mylist。我不知道这是否足够明确以寻求帮助?


慕的地8271018
浏览 155回答 2
2回答

慕妹3146593

最简单的操作是在函数定义中添加另一个参数,如下所示:def no_repeat_rule(play_board, aList):在调用函数之前,请在函数外部声明一个列表。将此值设置为等于函数的结果,并在调用函数时将其作为参数传递。例如:x = list()def no_repeat_rule(play_board, aList):    myList = aList    if seeds_left(play_board) == 2 and sum(play_board[:6])== 1:        myList.append(play_board)        return myListx = no_repeat_rule(someBoardHere, x)如果我了解您的要求,我相信这应该可以解决。如果没有,请回复,我会尝试其他方法。

30秒到达战场

您需要的是一个与功能关联的对象。它调用属性。在python中非常方便。您的代码可能如下所示:def no_repeat_rule(play_board):    if not hasattr(no_repeat_rule,"mylist"):        no_repeat_rule.mylist = []    if seeds_left(play_board) == 2 and sum(play_board[:6])== 1:        no_repeat_rule.mylist.append(play_board)        return no_repeat_rule.mylist我无法检查此代码,但它应适用于本地属性。顺便说一句,它适用于python 2.7
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python