0

特定の日付に最も一致するセット内の文字列を見つける関数に取り組んでいます。CSS セレクターのようなスコアリング システムを使用することにしました。これは、特定性の同じ概念を持っているためです。

1 つの部分は、最小スコアを把握することです。日付 (年月日) を探している場合、最小スコアは 100 です。月 (月と年のみ) を探している場合は 10 で、年しかない場合は1:

minscore = 1
if month: minscore = 10
if day: minscore = 100

私はPythonを初めて使用するので、すべてのトリックを知りません。これをより(最も)Pythonicにするにはどうすればよいですか?

4

4 に答える 4

3

スパースは密集よりも優れています;)

minscore = 1
if month:
    minscore = 10
elif day:
    minscore = 100

これはPEP 8にも引用されています。

複合ステートメント (同じ行に複数のステートメントがある) は一般的に推奨されません。

はい:

if foo == 'blah':
    do_blah_thing() do_one() do_two() do_three() 

むしろそうではありません:

if foo == 'blah': do_blah_thing() do_one(); do_two(); do_three()

条件付きステートメント (つまり、三項式) はおそらく「最も Pythonic」な方法だと思いますが、Zen of Python からの引用がいいと思いました。

于 2013-08-12T06:23:43.733 に答える