2013-04-25 2 views
-1

У меня проблема с выбором значений из словаря. di - словарь.словарь python со значением, имеющим несколько параметров

for key in di.keys() 
    print("key is = %s" %key) 
for value in di.values() 
    print("value is = %s" %value) 

это дает результат, как

key is = 1 

и

value is = xyz=0 | pqr=70 | abc=300 

я хочу все 3 значения (0,70,300) выше в отдельных переменных. я не могу сделать

di['xyz'] 

поскольку xyz сам по себе является ценным. как получить все эти значения? Это вложенный словарь?

+1

это не действует питон – jamylak

+0

отредактирован мою ошибку – Maulik

+1

Что 'di' выглядеть, какой формат данных ? –

ответ

2

Судя по всему, это ваш словарь

>>> di = {'1': 'xyz=0 | pqr=70 | abc=300'} 

Или, может быть {1: 'xyz=0 | pqr=70 | abc=300'}, но не очень понятно, в этом вопросе, так что я буду считать первым.

Это странно, что вы бы это как словарь, так что я не пытайся думать о том, почему это может быть, вместо этого я просто покажу вам, как вы могли бы построить то, что вы хотите от строки 'xyz=0 | pqr=70 | abc=300'

>>> di['1'].split(' | ') 
['xyz=0', 'pqr=70', 'abc=300'] 

расщепляется вертикальных стержней

>>> [x.split('=') for x in di['1'].split(' | ')] 
[['xyz', '0'], ['pqr', '70'], ['abc', '300']] 

расщепляется одинаковыми знаками, чтобы сделать списки пара ключей

>>> dict(x.split('=') for x in di['1'].split(' | ')) 
{'xyz': '0', 'abc': '300', 'pqr': '70'} 

Строит dict из этого

>>> di = dict(x.split('=') for x in di['1'].split(' | ')) 
>>> di['xyz'] 
'0' 

и теперь вы можете получить доступ к нему, как di['xyz']

+0

спасибо, что я получил его. – Maulik

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