2016-12-06 15 views
0

私はこの質問が以前に尋ねられていたはずですが、私はPythonで(1)答えを見つけるか(2)答えを理解するにはあまりにも慣れていないかもしれません。辞書内のリスト内の値にアクセス/取得する方法は?

私はリストを含む辞書を持っています。各キーには、リスト内の3つの値が関連付けられています。値はリストにあるので、インデックスが付けられていると仮定します。私は辞書キーが順序付けされておらず、通常は値が同じであることを知っています。しかし、値はリスト内にあるので、正しい順序で並べる必要があります。

各キーの最初の値を新しいリストに格納する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 

EDIT 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

私はDictReaderで読んだCSVファイルを持っています。その後、forループを使用して、読み込まれた辞書から特定の行のみを取り出し、それらを以前は空の辞書に格納しました。 – JackOfTales

関連する問題