2014-11-12 2 views
0

TL: DR версия:тяговые элементы из Словаре встроенных в список в Python 3

Попытка вытащить список из Dict (вырезаны: кортеж), основанный на его индекс. то есть {'a': [1,2], 'b':[3,4]} ... пытается выяснить, как вернуть список, связанный с a или b соответственно.

Ответ:

MyDict = {'a': [1,2], 'b':[3,4]} 

print(MyDict['a']) 

[1,2]

print(MyDict['b']) 

[3,4]

Фактическая версия с контекстом:

python3-возвращает значения LDAP для атрибутов учетных записей LDAP в структуре данных, с которыми Я не знаком. Это выглядит следующим образом:

{ 'универмаге': [ 'DepartmentName'], 'memberOf': [ 'CN = Например, OU = в, DC = домен, DC = ком', «CN = пример , OU = of, DC = domain, DC = com ']}

Я пытаюсь вытащить значения, связанные с отделом и элементом отдельно. Я думаю, что это кортеж со встроенным кортежем, где второй элемент встроенного кортежа - это список ... но я не уверен, поэтому мне не удалось выяснить, как разбирать данные.

Я создал класс, в который в конечном итоге попадают пользователи. Код для индексации:

class Associates: 
    def __init__(self, index, name, department, membergrp): 
     self.i = index 
     self.n = name 
     self.d = department 
     self.m = membergrp 

Вот код, который делает запрос:

 result = c.search(searchDC, criteria, SEARCH_SCOPE_WHOLE_SUBTREE, attributes = ['department','memberOf']) 
     if result: 
      for r in c.response: 
       if (r['type'] == 'searchResEntry'): 
        a.append(Associates(len(a)+1,(r['dn']), r['attributes'],r['attributes'])) 
       else: 
        pass 

... где 'а' является пустым списком.

Ответил:

Невозможно изменить запрос, должен содержать г [ «атрибуты»] для обоих выборов; Однако, когда выборы будут возвращены в г, они могут быть разобраны как ...

print ('Department is:', a[k].d['department']) 
print ('Member groups are: ', a[k].m['memberOf']) 

где К индексу списка.

+1

Это не кортежи, а скорее дикты. Вы уверены, что имеете в виду кортеж? – b4hand

+0

Я думал, что сделал. Прочтите раздел dict ... и они есть. Благодаря! Я не знал, что это за слово. – oBreak

+0

Вам следует отменить свое редактирование и вместо этого отправить ответ отдельно, если вы действительно считаете, что ваш ответ лучше, чем предоставленные. – b4hand

ответ

1

{'a': [1,2], 'b':[3,4]}, а структура данных LDAP {'department': ['DepartmentName'], 'memberOf': ['CN=example,OU=of,DC=domain,DC=com', 'CN=example,OU=of,DC=domain,DC=com']} являются ключевыми знаками. Значения извлекаются ключом.

d = {'department': ['DepartmentName'], 
    'memberOf': ['CN=example,OU=of,DC=domain,DC=com', 
        'CN=example,OU=of,DC=domain,DC=com']} 
dept = d['department'] # access by key 
mem = d['memberOf'] 
print("dept = {}\nmem = {}".format(dept, mem)) 

Если вы этого не сделали, я рекомендую вам ознакомиться с разделами учебника и справочника по словарям.

+0

Вы правы. У меня было ошибочное впечатление, что это были кортежи! – oBreak

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