Python - 使用哪种数据结构?

use*_*037 5 python arrays

我有一大堆数值数据,我需要按排序顺序前后排序,插入和移动值.我以前使用的是一个简单的数组.现在每个值都必须与一个id(一个唯一的int,只是为了骑行)链接.

我可以扩展数组类,还是需要使用元组列表?什么是我最好的选择?

pok*_*oke 3

您可以仅使用列表来获得排序的列表。如果您想要关联其他数据,您可以使用元组来存储数据,甚至可以为其创建一个自定义对象,将 id 存储在其他字段中。

\n\n

您不应该\xe2\x80\x99 需要为此扩展列表,您可以将任何对象放入列表中。例如,这很容易实现:

\n\n
>>> lst = [ ( 132, \'foobar\' ), ( 58, \'other value\' ) ]\n>>> lst.append( ( 70, \'some data value\' ) )\n>>> lst\n[(132, \'foobar\'), (58, \'other value\'), (70, \'some data value\')]\n>>> lst.sort( key=lambda x: x[0] )\n>>> lst\n[(58, \'other value\'), (70, \'some data value\'), (132, \'foobar\')]\n>>> lst.sort( key=lambda x: x[1] )\n>>> lst\n[(132, \'foobar\'), (58, \'other value\'), (70, \'some data value\')]\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑:

\n\n

如果您使用的是 Python 3.1+,您也可以使用该collections.OrderedDict类型。它是常态的延伸dict,就像维持秩序一样list

\n