私は最近、Python 3.5.2でmap()
を使って練習していましたが、モジュールを実行しようとしたときに、関数を区切るカンマとiterable
はSyntaxError
でした。ここでは、コードです:この条件文で構文エラーが発生するのはなぜですか?
eng_swe = {"merry":"god", "christmas":"jul", "and":"och", "happy":"gott",
"new":"nytt", "year":"år"}
def map_translate(l):
"""Translates English words into Swedish using the dictionary above."""
return list(map(lambda x: eng_swe[x] if x in eng_swe.keys(), l))
は私が気づいた私はこのような条件文を排除する場合:それが正常に動作しますが、それは上がらないリストに項目を追加しようとしないようにする能力を犠牲に
return list(map(lambda x: eng_swe[x], l))
辞書にはありません。
from functools import reduce
def reduce_max_in_list(l):
"""Returns maximum integer in list using the 'reduce' function."""
return reduce(lambda x, y: x if x > y else y, l)
はい、私はリスト内包して、よりきれいに、簡単に正確に同じことを行うことができます知っている:興味深いことに、また、ここに示したように、私は、reduce()
で条件文を使用してみました何の問題もありませんでしたしかし、たとえ私がもう一度それを使用することがなくなったとしても、少なくともmap()
を正しく使用する方法を学ぶためには時間がかかると思う。
三項演算子には 'else'条件が必要です。 – pzp