python的list()函数把字典转成列表,如何保持列表原有的顺序?

代码如下:z={'banji':'sanban','xuexiao':'hongxing','nianji':'wunianji'}li=list(z.values())... 代码如下:
z = {
'banji': 'sanban',
'xuexiao': 'hongxing',
'nianji': 'wunianji'
}
li = list(z.values())
print li
>>>['hongxing', 'sanban', 'wunianji']

我想输出['sanban', 'hongxing', 'wunianji'],要求代码简洁,最好用内置方法。
展开
 我来答
山炮小二黑
推荐于2017-10-06 · TA获得超过357个赞
知道小有建树答主
回答量:328
采纳率:100%
帮助的人:179万
展开全部
单纯从数据结构上来讲的话,字典的数据结构是散列,也就是哈希表,它是无序的,而列表的数据结构是链表,是有序的,所以想把字典转换成列表并且保持顺序不变,是不可行的。

题主可以使用OrderedDict(Python 2.7+)有序字典,OrderedDict是dict的子类,它记住了内容添加的顺序。

另外如果想把字典的key转换成列表,使用dict.keys()就可以了。
mailyc
2012-05-09 · TA获得超过135个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:130万
展开全部
正解,除非原先不用dict,python里有个OrderedDict 存储插入顺序
可以这样
z = collections.OrderedDict()
z[ 'banji'] = 'sanban',
z[ 'xuexiao'] = 'hongxing',
z[ 'nianji'] = 'wunianji'
然后就是你想要的结果了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
focusheart
2012-05-09 · TA获得超过486个赞
知道小有建树答主
回答量:489
采纳率:0%
帮助的人:321万
展开全部
做成字典以后就没有顺序可言了,内部按照自有顺序排放
>>> z.keys()
['xuexiao', 'banji', 'nianji']
迭代的时候就是按照这个顺序的。
所以需要顺序的话,还是算啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mielaogu
2012-05-09 · TA获得超过154个赞
知道答主
回答量:75
采纳率:0%
帮助的人:59.8万
展开全部
数据在dict中已经不是按照你写的次序存放了,所以你这个问题是无解的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhengruoqiao
2015-07-24 · TA获得超过1144个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:474万
展开全部
0.0 字典是无序的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式