2017-12-12 6 views
0

リストから辞書を作成しようとしています。リストを反復し、複数の値をPython辞書キーに追加します

情報の一部は特定の形式になっていますので、大変ですが、私はcatchaが必要です。キーが複数の値を持つように他のものを置くことはできますが、動作させることはできません。

誰もがこれを行うための最善の方法を説明できますか?

dv = 'Not Found' 

mydict = {'key1': dv, 
     'key2': dv, 
     'key3': dv,} 

for stuff in list6:  
     stringit = str(stuff).strip().replace(' ', '_') 
     descriplst.append(stringit) 
     for x in descriplst: 
      if re.match(regasset, x): 
       mydict['key1'] = x 
      if re.match(regcid, x): 
       mydict['key2'] = x 
      else: 
       mydict['key3'].append(x) 

私は取得していますエラーは次のとおりです。

Traceback (most recent call last): File "fixdes.py", line 73, in mydict['Interconnect'].append(x) AttributeError: 'str' object has no attribute 'append'

+1

あなたが期待通りに動作しない方法は?エラーが発生していますか?あなたが投稿したものを見ると、 'mydict ['key3']'は文字列 'Not Found'です。 'mydict ['key3'] .append(x)'は存在しない 'str.append'を呼び出そうとします。おそらく 'mydict ['key3']'を空のリストとして初期化したいのですか? – Galen

+0

私は次のエラーが発生しています:トレースバック(最近の最後の呼び出し): ファイル "fixdes.py"、 mydict ['Interconnect'] .append(x) AttributeError: 'str'オブジェクトには属性 'append' –

+0

私はそれをリストに変更したので、今は動作しますが、他の2つのキーからも追加されています。各リストアイテムでループ全体を繰り返しますか?一度それが何かにマッチすると、それを止めることができますか? –

答えて

0

文字列値は、APPENDを持っていません。 "key3"の値は空のリストで始める必要があります。 else文の中のappendが機能します。 各値がリストの末尾に追加されます。 "KEY3" の出力例:[ "VALUE1"、 "値2" ... "value6"]

変更mydictへ:

mydict = {'key1': dv, 
    'key2': dv, 
    'key3': []} 
関連する問題