【问题标题】:print up to or from nth key OrderedDict() python [duplicate]打印到或从第n个键OrderedDict()python [重复]
【发布时间】:2017-01-30 18:33:14
【问题描述】:

如何在 python 中打印 OrderedDict 的前 10 个或后 10 个键、值对?

这个

for item in my_ordereddict[:5]:
    print item

或者这个:

for i in range(0, 5):
    print my_ordereddict[i]

不工作。 有什么帮助吗?

【问题讨论】:

  • @SandipanDey 我不认为这是一个骗局,OrderedDict 专门取消了“无订单”限制。
  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。 “不工作” [原文如此] 不是问题规范。

标签: python ordereddictionary


【解决方案1】:
from collections import OrderedDict


if __name__ == '__main__':
    od = OrderedDict([["one", 1], ["two", 2], ["three", 3], ["four", 4], ["five", 5], ["six", 6]])
    for i in od.keys()[0:3]:
        print od[i]

【讨论】:

  • 这在 Python 3 中失败,因为各种 DictViews 不可下标。
【解决方案2】:

我会使用itertools.islice 来分割OrderedDict.items() 视图

from itertools import islice
from collections import OrderedDict

o = OrderedDict()
for i in range(100):
    o[i] = 2*i

for i in islice(o.items(), 0, 10):
    print(i)

输出:

(0, 0)
(1, 2)
(2, 4)
(3, 6)
(4, 8)
(5, 10)
(6, 12)
(7, 14)
(8, 16)
(9, 18)

【讨论】:

    猜你喜欢
    • 2022-07-20
    • 2016-09-29
    • 2012-11-24
    • 1970-01-01
    • 2018-10-05
    • 2016-02-16
    • 1970-01-01
    • 2018-02-19
    • 2018-07-07
    相关资源
    最近更新 更多