编辑 - >简短版本:
在Python中,与C不同,如果我将参数传递给函数I -say:dict-,函数调用中所做的更改将反映在外部(就好像我传递了一个指针而不仅仅是值)< / p>
我想避免这样:
但是我的dict的价值可能是某些词典,直到无限期深度
问题:什么是pythonic方式呢?
长版:
我正在使用Python中的n位代码编写一个大师级游戏机器人。
你试着猜测代码,每次尝试都会得到一个答案,就你有多少白/黑/无,这意味着resp。 “好数字好位置”/“好位错误位置”/“错误数字”(但你不知道白人/黑人/没有参考哪个数字)
我分析答案并用存储白/黑/无字典的字典构建一个可能性树。 我在一个列表中存储了代码中数字0-9的可能位置的地图(一个数字可以出现不止一次)。
Ex:对于一个3位数的游戏,我将[[x,y1,y2,y3] [ - 1,0,1,4] [...] [...] [] [] [] [] [] []]:
当我探索可能性的树时,我会更新此列表。这意味着树的每个分支都有自己的列表副本。 由于我最近发现,与C不同,当我将列表传递给子方法时,在子方法中对其进行的任何更改都会反映在外部列表中,我每次都用一个小方法手动复制我的列表:
def bak_symb(_s):
_b = [[z for z in _s[i]] for i in xrange(10)]
return _b
现在,我描述了我的程序并注意到90%的时间花在了
上所以我有三个问题。
欢迎所有评论和评论。 我是自学成才,可能错过了一些明显的pythonic做某事的方式。
最后但并非最不重要的是,我试图找到一个很好的妥协,使这个简短明确,在这里再次毫不犹豫地要求更多的细节。
提前致谢, 马特