一个很简单的python里的词典问题

学习 时间:2026-04-03 15:07:00 阅读:6375
一个很简单的python里的词典问题prices = {'banana':4,'apple':2,'orange':1.5,'pear':3}stock = {'banana':6,'apple':0,'orange':32,'pear':15}for price in prices:print priceprint 'price:',prices[price]print 'stock:',stock[price]请问为什么结果是这个顺序?词典里的元素存储不是无序的吗,每次运行都是这个顺序.此外词典里的value是int 或float,为什么打印出来,不需要用str()转换已经就是数字显示了orangeprice:1.5stock:32pearprice:3stock:15bananaprice:4stock:6appleprice:1stock:0

最佳回答

可靠的夕阳

娇气的茉莉

2026-04-03 15:07:00

字典的排序是根据hash值来排序的,只要对象的hash值是有序的,那么结果也会是有序的。我举个例子import osimport randomclass a( object ): data = 0 def __init__( self ): self。data = self。data self。__class__。data += 1 def __hash__( self ): return random。randint( 0 ,100 ) def __repr__( self ): return 'a object data ---> %d' % self。data b = dict( ( a( ) ,i ) for i in range( 6 ) ) for i in b: print( i )你试一下上面的代码,就会发现每次都是无序的

最新回答共有2条回答

  • 无语的蛋挞
    回复
    2026-04-03 15:07:00

    字典的排序是根据hash值来排序的,只要对象的hash值是有序的,那么结果也会是有序的。我举个例子import osimport randomclass a( object ): data = 0 def __init__( self ): self。data = self。data self。__class__。data += 1 def __hash__( self ): return random。randint( 0 ,100 ) def __repr__( self ): return 'a object data ---> %d' % self。data b = dict( ( a( ) ,i ) for i in range( 6 ) ) for i in b: print( i )你试一下上面的代码,就会发现每次都是无序的

上一篇 爱可以宽容一切,包容一切吗?

下一篇 一接地的无限大导体平板 外附近有一正电荷Q 与板垂直距离为d 我想问问 这时达到的静电平衡时怎么个情形 导体板内部场强怎