【问题标题】:how to iterate from index n to m of an OrderedDict? [duplicate]如何从 OrderedDict 的索引 n 迭代到 m? [复制]
【发布时间】:2015-09-19 15:06:01
【问题描述】:

我有一个OrderedDict,我想遍历它的一个子集,从索引nm。我可以用简单的方法来做:

from collections import OrderedDict

d = OrderedDict()
for i in range(10):
    d[i] = i

n = 3
m = 6
c = 0
for i in d:
    if n <= c <= m:
        print(d[i])
    c += 1

但我一直在寻找更紧凑的东西,类似于对列表进行切片:

n = 3
m = 6
l = [i for i in range(10)]
for i in l[n:m+1]:
    print(i)

OrderedDict有这样的机制吗?

【问题讨论】:

  • 为什么你的 "compact" 例子不是l[n:m+1]
  • @jonrsharpe:应该是!我会改正的,谢谢。

标签: python iteration ordereddictionary


【解决方案1】:

这取决于你的OrderedDict是如何创建的(nm需要考虑d中的项目的索引),但是这个怎么样:

d.values()[n:m]

【讨论】:

  • @bereal 因为for i in d:
  • @Kasra 他正在打印d[i],这正是他所需要的。
  • @bereal 是的 OP 想要该值,但不检查范围内的值!无论如何问题都不清楚!
  • @Kasra:你能详细说明一下问题不清楚吗?
  • @WoJ 对不起,我错过了 index!这个答案是正确的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 1970-01-01
  • 2020-08-02
相关资源
最近更新 更多