Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python列表更改顺序_Python_List_Dictionary - Fatal编程技术网

Python列表更改顺序

Python列表更改顺序,python,list,dictionary,Python,List,Dictionary,我有以下代码: for i in xrange(len(arr_id)): list.append({'id': arr_id[i], 'porcentaje' : 0, 'estado' : 'En funcionamiento'}) 如果我打印列表似乎会得到一个按字母顺序排列的列表: [{'estado':'En functionamiento','id':0',procentaje':0}] 这与我定义的顺序不同: [{'id':0,'procentaje':0,'estado'

我有以下代码:

for i in xrange(len(arr_id)):
    list.append({'id': arr_id[i], 'porcentaje' : 0, 'estado' : 'En funcionamiento'})
如果我打印
列表
似乎会得到一个按字母顺序排列的列表:
[{'estado':'En functionamiento','id':0',procentaje':0}]

这与我定义的顺序不同:
[{'id':0,'procentaje':0,'estado':'En functionamiento',}]


如何保持所需的顺序?

首先,列表将保持顺序,但列表中的词典不会,因为根据定义,词典是无序的。有一个名为的数据类型可以保持顺序,但我怀疑您是否真的需要它

其他一些评论:

不要将
list
用作变量名

不要像Python是C一样迭代。您可以直接迭代:

for item in arr_id:
    mylist.append({'id': item, 'porcentaje' : 0, 'estado' : 'En funcionamiento'})
甚至可以使用:


首先,你现在不是在处理清单。您正在处理嵌套在列表中的词汇表(这是毫无意义的,因为列表中只有一项)

你不能“排序”一个单词,因为它太容易从一个键中得到它的值。就你而言:

>>> x = {'estado': 'En funcionamiento', 'id': 0, 'porcentaje': 0}
>>> x['estado']
b"En funcionamiento"
因此,没有必要对措辞进行分类

虽然您可以显示您的dict的排序表示。但它仅用于打印目的

import operator
x = {'estado': 'En funcionamiento', 'id': 0, 'porcentaje': 0}
sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))

或者,正如其他答案所指出的,您可以使用一个命令来保留您的命令的顺序。

Python字典没有设置的顺序。为什么需要维护字典键顺序?您正在对只有一项的列表进行排序,这是一个字典序列。Python dictionnary没有Martinjn指出的“顺序”。因为这创建了一个
json
,我需要一个准确的顺序才能在Java中读取它们。@Borja:json对象也没有顺序。即使您对键进行了排序,Java也可以自由地以不同的顺序对它们进行解码。@Borja:如果顺序很重要,请使用键值元组列表。
import operator
x = {'estado': 'En funcionamiento', 'id': 0, 'porcentaje': 0}
sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))