2017-01-30 10 views
1

Как я могу напечатать первые 10 или последние 10 пар ключей, значение параметра OrderedDict в python?печатать до или из n-го ключа. OrderedDict() python

это

for item in my_ordereddict[:5]: 
    print item 

или это:

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

не работают. Любая помощь?

+0

@SandipanDey Я не думаю, что это боян, 'OrderedDict' специально покончила с ограничение «без ордера». – L3viathan

+0

Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [Минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve) применим здесь. Мы не можем эффективно помочь вам, пока вы не разместите свой код MCVE и не сможете точно описать проблему. «Не работает» [sic] не является проблемой. – Prune

ответ

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] 
+3

Это не работает в Python 3, поскольку различные DictView не являются подстраницами. –

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)