我是Python新手,我正在尝试dicts,你知道的问题是dicts中的顺序没有保持,所以我使用orderedicts来执行这个问题,但是我没有成功。你知道吗
这就是我正在尝试的口述:
numbersDictionary = OrderedDict({
"0":{ (0,1),(1,0),(1,2),(2,1),(2,2),(2,3) },
"1":{ (1,2),(2,3) },
"2":{ (0,1),(1,1),(1,2),(2,1),(2,1),(2,2) },
"3":{ (0,1),(1,1),(1,2),(2,2),(2,3) },
"4":{ (1,0),(1,1),(1,2),(2,3) },
"5":{ (0,1),(1,0),(1,1),(2,2),(2,3) },
"6":{ (0,1),(1,0),(1,1),(2,1),(2,2),(2,3) },
"7":{ (0,1),(1,2),(2,3) },
"8":{ (0,1),(1,0),(1,1),(1,2),(2,1),(2,2),(2,3) },
"9":{ (0,1),(1,0),(1,1),(1,2),(2,2),(2,3) }
});
所以当我这样做的时候:
print(numbersDictionary.get("5"))
输出:
{(0, 1), (2, 3), (2, 2), (1, 0), (1, 1)}
如何建立数据的dict以获得正确的order元素?你知道吗
问题不在于
OrderedDict
本身,而是使用集合作为字典值。集合是无序的。使用列表代替。你知道吗这是一个
set
:这是一个
list
:OrderedDict
保持键的顺序,而不是值的顺序。在这里,您需要对值进行排序,以便list
是正确的数据结构。你知道吗你首先使用了错误的数据类型。您的键实际上是索引的字符串表示;这就是列表的用途!使用列表存储此数据。你知道吗
至于集合,您最可能的目标是在这里使用列表,以及列表保留顺序而集合不保留顺序,它们是“唯一元素的无序集合”。你知道吗
下面是我的意思的一个例子:
通过这种方式存储数据,您可以使用子列表的索引作为int来访问子列表
相关问题 更多 >
编程相关推荐