Python列表更改ord

2024-09-30 04:35:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

for i in xrange(len(arr_id)):
    list.append({'id': arr_id[i], 'porcentaje' : 0, 'estado' : 'En funcionamiento'})

如果我打印list似乎我得到了一个按字母顺序排列的列表:
[{'estado': 'En funcionamiento', 'id': 0, 'porcentaje': 0}]

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

我该怎么做才能维持所需的秩序?在


Tags: 代码inid列表forlen字母list
2条回答

首先,你现在不是在处理名单。你在处理一个嵌套在列表中的单词(这是毫无意义的,因为列表中只有一个条目)

你不能“排序”一个单词,因为从一个键中获取它的值太容易了。在您的情况下:

>>> x = {'estado': 'En funcionamiento', 'id': 0, 'porcentaje': 0}
>>> x['estado']
b"En funcionamiento"

所以没有必要对措辞进行分类。在

虽然你可以显示你的dict的排序表示,但它只用于打印目的。在

^{pr2}$

或者正如其他答案所指出的,你可以用OrderedDict来保持你的口述顺序

首先,列表将保持顺序,但列表中的字典不会,因为字典从定义上讲是无序的。有一个名为^{}的数据类型可以保留顺序,但我怀疑您是否真的需要它。在

其他一些评论:

不要使用list作为变量名。在

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

for item in arr_id:
    mylist.append({'id': item, 'porcentaje' : 0, 'estado' : 'En funcionamiento'})

或者使用list comprehension

^{pr2}$

相关问题 更多 >

    热门问题