python的list()函数把字典转成列表,如何保持列表原有的顺序?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的list()函数把字典转成列表,如何保持列表原有的顺序?相关的知识,希望对你有一定的参考价值。
代码如下:
z =
'banji': 'sanban',
'xuexiao': 'hongxing',
'nianji': 'wunianji'
li = list(z.values())
print li
>>>['hongxing', 'sanban', 'wunianji']
我想输出['sanban', 'hongxing', 'wunianji'],要求代码简洁,最好用内置方法。
题主可以使用OrderedDict(Python 2.7+)有序字典,OrderedDict是dict的子类,它记住了内容添加的顺序。
另外如果想把字典的key转换成列表,使用dict.keys()就可以了。 参考技术A 正解,除非原先不用dict,python里有个OrderedDict 存储插入顺序
可以这样
z = collections.OrderedDict()
z[ 'banji'] = 'sanban',
z[ 'xuexiao'] = 'hongxing',
z[ 'nianji'] = 'wunianji'
然后就是你想要的结果了本回答被提问者采纳 参考技术B 做成字典以后就没有顺序可言了,内部按照自有顺序排放
>>> z.keys()
['xuexiao', 'banji', 'nianji']
迭代的时候就是按照这个顺序的。
所以需要顺序的话,还是算啦 参考技术C 数据在dict中已经不是按照你写的次序存放了,所以你这个问题是无解的 参考技术D 0.0 字典是无序的
如何在python中把一个set转化成另外一个list的名称?
比如, 已有一串对象a1=3, a2=34,a3=47129.......,现在用户输入int(1或2或3),需要返回对应的值 (如果用户输入的是2,就返回a2的值,如果输入的是3,就返回 a3的值 )。
现在用户输入了很多int,全储存在一个set,也就是集合里, 现在要把所有这个集合里的int全部根据上面的一一对应的关系转换成: a1, a2, a3, a4......这种类型的对象,然后把转换后的对象(也就是相应的a1,a2,a3..... )存在一个新集合(set)里,该怎么做呢?
a1=31
a2=32
a3=33
temp=input("input int: ")
exec "print a"+str(temp)
对你的第二个问题:输入的int被存在inputset里,对应的a1、a2或a3存在varset里
a1=31
a2=32
a3=33
inputset=set()
varset=set()
while 1:
temp=input("input int(input 0 for end): ") # 输入0就结束输入
if temp <> 0:
inputset.add(temp)
else:
break
print inputset
for e in inputset:
exec "varset.add(a"+str(e)+")"
print varset 参考技术A 很简单的东东,举个例子.
我只用两个数据来演示
a1 = 3
a2 = 34
all_data = 1 : a1 ,2 : a2
user_data = set( [ 1 ] )
new_data = set( all_data[ key ] for key in user_data.intersection( all_data ) )
print( new_data )本回答被提问者采纳
以上是关于python的list()函数把字典转成列表,如何保持列表原有的顺序?的主要内容,如果未能解决你的问题,请参考以下文章