Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 1, 2013 16:55:20

Red_baron
Зарегистрирован: 2012-08-30
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Ключи в OrderedDict

Добрый день.
Столкнулся со следующей проблемой.
Использую OrderedDict из модуля collection.

from collections import OrderedDict as ODict
od = ODict()
od['w'] = 123
od['b'] = 34
od['a'] = 33
print(od.keys())

В результате выводит
KeysView(OrderedDict([('w', 123), ('b', 34), ('a', 33)]))
А хотелось бы получить только список ключей. Существует ли какой-нибудь простой способ получить ключи?

Отредактировано Red_baron (Сен. 1, 2013 16:56:52)

Офлайн

#2 Сен. 1, 2013 17:41:21

Faer
Зарегистрирован: 2013-08-25
Сообщения: 25
Репутация: +  3  -
Профиль   Отправить e-mail  

Ключи в OrderedDict

Вроде, только так:

sp=[]
for i in od.keys():
    sp.append(i)

Так Вы получите список ключей в переменную sp. Методов, возвращающих список ключей, вроде как в OrderedDict() нет.

Отредактировано Faer (Сен. 1, 2013 17:44:42)

Офлайн

#3 Сен. 1, 2013 20:17:04

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Ключи в OrderedDict

Red_baron это строковое представление
сделай так

print(list(od.keys()))

Офлайн

#4 Сен. 1, 2013 21:10:39

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Ключи в OrderedDict

У меня также, как и для обычного словаря, выводит список ключей

Если выводить сам словарь, то

KeysView(OrderedDict([('w', 123), ('b', 34), ('a', 33)]))

Python 2.7.5



Офлайн

#5 Сен. 2, 2013 02:04:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Ключи в OrderedDict

>>> from collections import OrderedDict as ODict
>>> 
>>> od = ODict()
>>> 
>>> od['w'] = 123
>>> od['b'] = 34
>>> od['a'] = 33
>>> 
>>> print(od.keys())
KeysView(OrderedDict([('w', 123), ('b', 34), ('a', 33)]))
>>> print(list(od))
['w', 'b', 'a']
>>>



Офлайн

#6 Сен. 3, 2013 06:46:05

Red_baron
Зарегистрирован: 2012-08-30
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Ключи в OrderedDict

Спасибо.
Меня действительно сбило строковое представление.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version