【发布时间】:2015-11-29 20:56:10
【问题描述】:
这个程序应该做的是使用两个循环遍历数组,并将第一个集合中不是数字的所有内容变成一个键。键没有按我期望的顺序添加到字典中。这门课还有更多内容,但这是给我带来麻烦的部分。
class Sorter():
def __init__(self, vals):
self.vals = vals
def borda(self):
bordaContainer = { }
arrayLength = len(self.vals)
for outsides in range(arrayLength):
for insides in range(len(self.vals[outsides])):
currentChoice = self.vals[outsides][insides]
if outsides ==0 and insides != len(self.vals[outsides])-1:
bordaContainer[currentChoice] = ''
return bordaContainer
inputArray = [['A','B','C','D',10],['C','D','B','A',4],['D','A','B','C',7]]
first = Sorter(inputArray)
print first.borda()
结果:
{'A': '', 'C': '', 'B': '', 'D': ''}
我应该得到 {'A': '', 'B': '', 'C': '', 'D': ''}。任何对正在发生的事情的解释都会很棒,谢谢!
【问题讨论】:
-
python 中的字典没有排序。如果需要,请使用
collections模块中的OrderedDict。 -
python 中的字典不保留插入键的顺序。如果您确实想维持订单,请尝试使用
OrderedDict。 docs.python.org/2/library/… -
这个问题的本质已经在 Stack Overflow 上被问过无数次了。如果您想了解为什么 Python 字典是无序的,this 有一些很好的答案。
标签: python arrays dictionary