2016-01-25 2 views
-1

Я работаю с словарями Python, и я не понимаю, когда использую функцию dict.values() и dict.keys().Словарь ключей и значений

Почему они дают в результате также «описание» функции? Я что-то упустил?

participant = {"name": "Lisa", "age": 16, "activities": [{"name": "running", "duration": 340},{"name": "walking", "duration": 790}]} 
print(participant.values()) 
print(participant.keys()) 

Отпечаток дает следующие результаты:

dict_values([[{'duration': 340, 'name': 'running'}, {'duration': 790, 'name': 'walking'}], 'Lisa', 16]) 
dict_keys(['activities', 'name', 'age']) 

Я не хочу 'dict_values' и 'dict_keys' в результате. Что я делаю не так?

+2

Вы не делаете ничего плохого - в 3.x, эти методы возвращают * * взгляды по различным причинам производительности. См. Https://docs.python.org/3.0/whatsnew/3.0.html#views-and-iterators-instead-of-lists – jonrsharpe

+1

Если вы добавите '*', например. 'print (* partici ...', он будет печатать более аккуратно. – TigerhawkT3

+0

Мне пришлось использовать список .. обновил обновления python! спасибо – Totoro

ответ

1

Для этой цели вы можете использовать ключевое слово list:

list(participant.keys()) # ['name', 'activities', 'age'] 
list(participant.values()) 
# ['Lisa', [{'name': 'running', 'duration': 340}, {'name': 'walking', 'duration': 790}], 16] 
Смежные вопросы