如何在Python中实现关联数组(而不是字典)?

2024-05-15 02:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用Python打印出一本字典:

Dictionary = {"Forename":"Paul","Surname":"Dinh"}
for Key,Value in Dictionary.iteritems():
  print Key,"=",Value

虽然项目“Forename”列在第一位,但Python中的字典似乎是按值排序的,因此结果如下:

Surname = Dinh
Forename = Paul

如何在代码中以相同的顺序打印这些项,或在附加项时以相同的顺序打印这些项(不按值或键排序)?


Tags: 项目keyinfordictionary字典排序顺序
3条回答

可以使用元组列表(或列表列表)。像这样:

Arr= [("Forename","Paul"),("Surname","Dinh")]
for Key,Value in Arr: 
    print Key,"=",Value

Forename = Paul
Surname = Dinh

你可以用它编一本字典:

Dictionary=dict(Arr)

正确排序的键如下:

keys = [k for k,v in Arr]

然后执行以下操作:

for k in keys: print k,Dictionary[k]

但我同意你的意见:循环时,按要求的顺序对密钥进行排序会不容易吗?

编辑:(感谢Rik Poggi),订购信息技术是否为您提供:

od=collections.OrderedDict(Arr)
for k in od: print k,od[k]

首先,字典根本不按键或值排序。

根据你的描述。实际上您需要collections.OrderedDict模块

from collections import OrderedDict

my_dict = OrderedDict([("Forename", "Paul"), ("Surname", "Dinh")])

for key, value in my_dict.iteritems():
    print '%s = %s' % (key, value)

注意,您需要从元组列表中而不是从另一个dict中实例化OrderedDict,因为dict实例将在orderedict被实例化之前重新排列项的顺序。

您可以使用^{}。有python2.7和python3.2+两种版本。

相关问题 更多 >

    热门问题