如何反向循环地图对象的2ND值?

时间:2014-04-18 01:19:45

标签: python dictionary map

我有一个地图,我使用for循环来循环它,但它只给我第一个值,。升序。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

升序是什么意思?你可以对它们进行排序:

Python 2.7

for v in sorted(map.itervalues()):
   print v

Python 3

for v in sorted(map.values()):
   print v

如果您希望对键进行排序,请尝试:

for _, v in sorted(map.items()):
   print v

答案 1 :(得分:0)

我假设你用地图表示dict,用“第一个值”表示键,用“第二个值”表示值?

您可以使用.iteritems()来迭代键/值对,而不仅仅是键

d = {'a': 1, 'b': 2}
for k, v in d.iteritems():
    print "key:", k
    print "value:", v

.itervalues()只迭代值:

for v in d.valueitems():
    print "value:", v

没有办法直接对dict的项目进行排序 - 对dict的迭代可以按任何顺序进行。但是,您可以遍历已排序的iteritems()

for k, v in sorted(d.iteritems(), key=lambda k, v: v):
    print "key:", k
    print "value:", v

或只是值:

for v in sorted(d.valueitems()):
    print "value:", v

答案 2 :(得分:-1)

你的要求不是很清楚,但我最好的猜测。下次尝试发布一些已完成的代码!

>>> mydict = {'a': 1, 'b': 89, 'c': 56, 'd': 9123, 'e':-23}
>>> mylist = []
>>> for k in mydict:
...     mylist.append(mydict[k])
... 
>>> mylist.sort()
>>> mylist.reverse()
>>> mylist
[9123, 89, 56, 1, -23]
>>> 

<强>解释

  1. mydict设置为某个数字值(因为您需要反向)
  2. mylist设为空白列表
  3. 循环显示dict的第一个
  4. 使用第一个值获取mydict[k]的第二个值。
  5. 将其附加到mylist
  6. 使用mylist.sort()按升序排序
  7. 使用mylist.reverse()将其撤消。