Python で次のリスト内包表記を作成しました。
[int(a[0].internal_value).lower() if type(a[0].internal_value) in (str,unicode) and a[0].internal_value.isdigit() == True
else str(a[0].internal_value).lower() if type(a[0].internal_value) in (str,unicode)
else int(a[0].internal_value) if type(a[0].internal_value) in (float,int)
for a in ws.iter_rows() if a[0].internal_value <> None]
条件の場合、最後のelseを構築しようとして問題が発生しています:
else int(a[0].internal_value) if type(a[0].internal_value) in (float,int)
その行で if 条件を使用すると、無効な構文が得られます。
if type(a[0].internal_value) in (float,int)
if文を削除すると
else int(a[0].internal_value)
その後、うまくいくようです。そこにif文が必要です。
私にとって、条件がリスト内包表記である場合は、より単純な if、else 条件を実行する方法です。
if i == x:
do something
elif i == y:
do something
elif i == z:
do something
原則として、一連の条件文を閉じるために常に「else」を使用する必要はありません。私のコードでは、理解の中で最後の「else」が必要なようです。そうであれば、最終的なelseの代わりにpythonリスト内包表記の場合、最終的なelseを構築する方法はありますか?