2013-05-19 3 views
-6

Пусть мой список (? Словарю) определяется как:Печать из списка Python

a = [{ 'a':'z', 'b':'x', 'c':'w', 'd':'v'}, {{ 'a':'f', 'b':'g', 'c':'h', 'd':'i'}, [...]] 

Я пытался получить доступ к элементам следующим образом:

print values[0].get(2) 

и я получил None

+2

Это не список. Каков ваш точный объект? – Blender

+2

Это недопустимый набор, набор не может содержать хешируемые значения. –

+0

Вы имеете в виду список словарей? 'a = [{'a': 'z', 'b': 'x', 'c': 'w', 'd': 'v'}, {'a': 'f', 'b' : 'g', 'c': 'h', 'd': 'i'}] ' –

ответ

2

в немного непонятно, вы ищете это?

In [41]: a = [{ 'a':'z', 'b':'x', 'c':'w', 'd':'v'}, { 'a':'f', 'b':'g', 'c':'h', 'd':'i'}] 

In [42]: a[0].get('a') 
Out[42]: 'z' 

... или это?

In [50]: a[0].values() 
Out[50]: ['z', 'w', 'x', 'v'] 

... или используя ваши предоставленные данные:

In [47]: data = {'style': '-', 'subCat': '-', 'name': 'Eurodollar Futures', 'oi': '9,774,883', 'floor': 'ED', 'url': '/trading/interest-rates/stir/eurodollar_contract_specifications.html', 'clearing': 'ED', 'cpc': 'ED', 'venues': 'Globex Floor ClearPort ', 'cat': '-', 'vol': '2,026,353', 'globex': 'GE', 'group': 'Interest Rate', 'tags': '-', 'cleared': 'Futures', 'id': 1, 'exch': 'CME', 'subGroup': 'Stirs'} 

In [48]: data.get('name') 
Out[48]: 'Eurodollar Futures' 

вы можете также цикл по словарю:

In [52]: for k,v in a[0].iteritems(): 
    ....:  print k, v 
    ....:  
a z 
c w 
b x 
d v 
+0

Есть ли способ индексирования без использования имени ключа? Предположим, есть 20 ключей, и я не хочу набирать data.get ('xxxx') 20 раз. – dawg

+1

@dawg вы забыли два символа в конце :) – Lennart

+0

@dawg - см. Обновление для использования итератора –

Смежные вопросы