2016-12-06 2 views
0

Я чувствую, что этот вопрос должен был быть задан раньше, но я могу быть слишком неопытным в Python, чтобы либо (1) найти ответ, либо (2) понять ответ.Как получить/получить значения внутри списка в словаре?

У меня есть словарь, который содержит списки. Каждый ключ имеет три значения, связанные с ним внутри списка. Поскольку значения указаны в списке, я предполагаю, что они индексируются. Я знаю, что словарные ключи являются неупорядоченными и обычно значениями являются. Однако, поскольку значения находятся в списке, их нужно упорядочить, правильно?

Я хочу написать цикл for, который сохранит первое значение внутри каждой клавиши в новом списке. Или, альтернативно, я просто хочу знать, как получить доступ к значениям в словаре! Я попробовал следующее: имя = словарь списков

for key, values in name.iteritems(): 
    xCoord = key[1] 
    print xCoord 

Однако я получаю ошибку: «IndexError: индекс строки из диапазона.» Каким будет способ вызова/получения первого значения, связанного с каждым ключом? Спасибо!

EDIT: Я создал словарь со следующим.

inputCSV = r"G:\REDIRECT\GRP\Test\Workspace\GRPNOV16A.csv" 
name = {} 
with open((inputCSV),'rb') as offenseFile: 
    read = csv.DictReader(offenseFile) 
    for row in read: 
     if row['Defendant'] not in name: 
      name[row['Defendant']] = [] 
     name[row['Defendant']].append((row['X - Offense'],row['Y - Offense'],row['GRP Status'])) 
    offenseFile.close 

РЕДАКТИРОВАТЬ 2: Для тех, кто в будущем является неопытным и нуждается в аналогичном вопросе. Словарный код, приведенный выше, создавал кортеж в списке в словаре. В результате, чтобы получить доступ к кортежу, я должен был сделать:

for key, values in name.iteritems(): 
    xCoord = key[0][1] 
    print xCoord 

ответ

0

Поскольку значения в списке, не должно это быть больше нравится?

for key, values in name.iteritems(): 
    xCoord = values[1] 
    print xCoord 
+0

Когда я пытаюсь это сделать, я все равно получаю ту же ошибку. – JackOfTales

+0

Работает для меня. Как настроить словарь? – manonthemat

+0

У меня есть файл CSV, который я читал с помощью DictReader. Затем я использовал цикл for, чтобы брать только определенные строки из словаря чтения и хранить их в ранее открытом словаре. – JackOfTales

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