ディクテーション(例:d
)があります。 dict.get(key, None)
はkey
がd
に存在しない場合はNone
を返します。Pythonで具体的な方法でキーのリストから最初の値を取得するにはどうすればよいですか?
は、どのように私はキーのリストから最初の値を(すなわち、d[key]
がNone
ではありません)(そのうちのいくつかはd
には存在しない可能性があります)を取得できますか?
このポストPythonic way to avoid “if x: return x” statementsは、具体的な方法を提供します。私はそれが動作
# a list of dicts
list_dicts = [ {'level0' : (1, 2), 'col': '#ff310021'},
{'level1' : (3, 4), 'col': '#ff310011'},
{'level2' : (5, 6), 'col': '#ff312221'}]
# loop over the list of dicts dicts, extract the tuple value whose key is like level*
for d in list_dicts:
t = d.get('level0', None) or d.get('level1', None) or d.get('level2', None)
col = d['col']
do_something(t, col)
、で実証されたように、1行でそれをacheiveするXOR演算子を使用
for d in list_dicts:
for key in keys:
if key in d:
print(d[key])
break
。このように、私は単にすべてのオプション(level0
〜level3
)を記載しています。リスト内包のように、多くのキー(例えば、level0
からlevel100
まで)のためのより良い方法がありますか?
@ user3100115、私は質問を編集し、あなたが言及した投稿を参照しました。私はそれが重複していないと信じています。 Plsはそれを再度チェックします。 – SparkAndShine
この質問は基本的に元の(重複した)質問の特定のケースです。条件は 'd.get( 'level0'、None)'、 'd.get( 'level1'、None)'などです。 'check_size()'、 'check_color()'など –