回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是Python新手(4周内),我的Python程序有问题,它应该对我的字典进行排序。我的dict中有id,其中一些是相互连接的(通过set)。在这个例子中,我应该得到一个由两个数组组成的数组[[1,3,4,7,8,9],[2,5,6,50,70,80]]来标记我的两个不同的组。
这个程序在一个较旧的python版本上运行,但是现在我在将它转换为python3.5时遇到了问题,因为集合的工作方式不同,我似乎无法让它运行。为了使它在python3.5上工作,我需要做什么更改?(我在Spyder环境中使用WinPython3.5)</p>
<pre><code>from sets import Set
dict = {1:Set([3,4]), 2:Set([5,6]), 3:Set([1,4,7,8]), 4:Set([1,3,8,9]), 5:Set([2,6,50,80]), 6:Set([2,5,70,80]), 7:Set([3,8]), 8:Set([3,4,7,9]), 9:Set([4,8]), 50:Set([5,80]), 70:Set([6,80]), 80:Set([5,6,50,70])}
def recursion(number):
if number not in tmp_array:
tmp_array.append(number)
if number in dict:
tmp = dict[number]
del dict[number]
for i in tmp:
recursion(i)
def startRecursion(number):
global tmp_array
tmp_array = []
recursion(number)
return tmp_array
def getResults():
results = []
tmp_array = []
while dict:
results.append(startRecursion(dict.keys()[0]))
return results
print (getResults())
</code></pre>