我有一个地图,我使用for循环来循环它,但它只给我第一个值,。升序。任何帮助表示赞赏!
答案 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]
>>>
<强>解释强>
行
mydict
设置为某个数字值(因为您需要反向)mylist
设为空白列表mydict[k]
的第二个值。mylist
mylist.sort()
按升序排序mylist.reverse()
将其撤消。