具有Id号的Python Dict()

具有Id号的Python Dict(),python,dictionary,Python,Dictionary,我不熟悉dict()。我试着举个例子。(Python 2.6) 结果: [('crazy', 1), ('sad', 2), ('mad', 1), ('cry', 1), ('happy', 2)] 我只是想知道。是否有可能获得每个dict的ID?有什么建议吗 预期结果: [(1, 'crazy', 1), (2, 'sad', 2), (3, 'mad', 1), (4, 'cry', 1), (5, 'happy', 2)] 默认情况下,字典是无序的。你也许能得到一份有序的口述 记住,

我不熟悉dict()。我试着举个例子。(Python 2.6)

结果:

[('crazy', 1), ('sad', 2), ('mad', 1), ('cry', 1), ('happy', 2)]
我只是想知道。是否有可能获得每个dict的ID?有什么建议吗

预期结果:

[(1, 'crazy', 1), (2, 'sad', 2), (3, 'mad', 1), (4, 'cry', 1), (5, 'happy', 2)]

默认情况下,字典是无序的。你也许能得到一份有序的口述

记住,你的钥匙在某种程度上就是你的身份证。因此,只要您没有id为
int
。始终可以通过值的键来引用值。当你有一个dict时,没有真正意义上的索引和键

如果您想知道dict的大小,可以随时使用函数
len

d = dict(a=1, b=2, c=3)

len(d)

默认情况下,字典是无序的。你也许能得到一份有序的口述

记住,你的钥匙在某种程度上就是你的身份证。因此,只要您没有id为
int
。始终可以通过值的键来引用值。当你有一个dict时,没有真正意义上的索引和键

如果您想知道dict的大小,可以随时使用函数
len

d = dict(a=1, b=2, c=3)

len(d)

您可以使用将计数添加到结果中,但请注意,顺序没有意义,因为字典没有设置顺序:

[(i,) + item for i, item in enumerate(d.items(), 1)]
演示:

字典顺序取决于插入和删除的历史记录。不能指望
d.items()
按特定顺序返回键值对


只要不从字典中添加或删除任何内容,
d.keys()
d.values()
d.items()
将以相同的顺序生成列表,顺序就保持稳定
zip(d.keys(),d.values())
生成与
d.items()
相同的对。因此,只要字典本身没有更改,您就可以使用该特定字典值的特定顺序,并依靠它不进行更改。

您可以使用向结果添加计数,但请注意,顺序没有意义,因为字典没有设置顺序:

[(i,) + item for i, item in enumerate(d.items(), 1)]
>>> l = [('crazy', 1), ('sad', 2), ('mad', 1), ('cry', 1), ('happy', 2)]
>>> [(x, y, z) for x, (y, z) in list(enumerate(l, 1))]
[(1, 'crazy', 1), (2, 'sad', 2), (3, 'mad', 1), (4, 'cry', 1), (5, 'happy', 2)]
演示:

字典顺序取决于插入和删除的历史记录。不能指望
d.items()
按特定顺序返回键值对


只要不从字典中添加或删除任何内容,
d.keys()
d.values()
d.items()
将以相同的顺序生成列表,顺序就保持稳定
zip(d.keys(),d.values())
生成与
d.items()
相同的对。因此,只要字典本身没有更改,您就可以使用特定字典值的特定顺序,并依靠它不更改。

字典没有固定的顺序,因此这里没有可分配的索引。您可以使用计数器对结果进行编号,但顺序没有意义。@MartijnPieters抱歉,你的意思是可以计算结果的数量,但不能对dict id使用count,对吗?@ThanaDaray你到底想实现什么?如果“count”是指“计数器”,那么不,你不能使用计数器索引到字典结果,不。字典没有固定的顺序,所以这里没有可分配的索引。您可以使用计数器对结果进行编号,但顺序没有意义。@MartijnPieters抱歉,您的意思是可以计算结果的数量,但不能对dict id使用计数,对吗?@ThanaDaray您到底想实现什么?如果“计数”是指“计数器”,那么不,不能使用计数器索引到字典结果,否。
>>> l = [('crazy', 1), ('sad', 2), ('mad', 1), ('cry', 1), ('happy', 2)]
>>> [(x, y, z) for x, (y, z) in list(enumerate(l, 1))]
[(1, 'crazy', 1), (2, 'sad', 2), (3, 'mad', 1), (4, 'cry', 1), (5, 'happy', 2)]