のPython v3.4.3一覧
:
dlist = [{'Bilbo':'Ian','Frodo':'Elijah'},{'Bilbo':'Martin','Thorin':'Richard'}]
と変数k
k = 'Frodo'
タスクからリストをasignするexpresionを書くことですキーが存在しない辞書は、「存在しない」と表示されなければならず、すべての問題は1行で解決されなければならない。私は、望ましい出力を与える行を書かれている
:
for kk in dlist : kk[k] if k in kk else 'NOT PRESENT'
出力:
'Elijah'
'NOT PRESENT'
が、問題は、私は、変数
res = list(for kk in dlist : kk[k] if k in kk else 'NOT PRESENT')
に、この出力を割り当てることができないということです
または
res = [for kk in dlist : kk[k] if k in kk else 'NOT PRESENT']
EDIT:すべての辞書キー
res = [x[k] for x in dlist]
を希望しているが、dictionarylistでKKのためと辞書
で「キー」場合、私は、[キー] 辞書を組み合わせカント場合 加えて、これは正しい割り当てを与えます
abhinsitがこの質問に答え、私にいくつかの洞察力を与えた後、私はそれを解決しました。
output = [item[k] if k in item else 'NOT PRESENT' for item in dlist]
私の主な問題は、elseステートメントの正しい位置でした。
簡単に言うと、それはあなたが探している理解のための適切な構文ではありません。リンクされた複製を参照してください。 – TigerhawkT3
期待される結果を提示した場合(印刷時の出力ではなく)、あなたの質問はより明確になります。また、タイトルから「Python343」を削除してください。これは別のタグのためです。 –
また、 'kk.get(k、 'PRESENT')'をチェックアウトしてください。 – TigerhawkT3