0

したがって、各サブリストの 7 つの位置のうち、最初の位置は 6 ポイント、2 番目の位置は 5、3 番目の位置は 4、4 番目の位置は 4、3 番目の位置は 2、 2 番目は 1 で、最後は優先ポイントを取得しません。

    days_week=['mon','tues','wed','thurs','fri','sat','sun']

    random_day_list=[['sat','sun','wed','thurs','mon','tues','fri'],['mon','fri','sat','sun','wed','thurs','tues'],['tues','fri','sun','sat','wed','thurs','mon']]

私が作成している関数は、最高得点の日のタプルと、days_week の順序で各日の合計ポイントのリストを出力する必要があります。上記の出力は次のようになります。

    ('sat',[8,7,8,5,10,14])

土曜日は 14 ポイントだったので、この場合は最も好まれた日でした。

これまでのところ、次のことを考えました。

   day_dictionary={'mon':0,'tues':0,'wed':0,'thurs':0,'fri':0,'sat':0,'sun':0}
   for i in random_day_list:
         # getting into the sublist
         for j in i:
              if j in day_dictionary:
                 # stuck here:  whatever position j is in (0,1,2,3,4,5,6) if its 
                   0 add 6, 1 add 5, and so on, to day_dictionary[j]

そして、数学の魔女以外は何もインポートできません。必要だとは思いません

4

1 に答える 1

0

自分がどの位置にいるかを追跡する何らかの方法が必要です。列挙関数がそれを行います!

これを試して:

day_dictionary={'mon':0,'tues':0,'wed':0,'thurs':0,'fri':0,'sat':0,'sun':0}
for i in random_day_list:
     for position, day in enumerate(i):
         if day in day_dictionary:
             day_dictionary[day] += (6 - position)

(将来のためのメモとして、手動ですべてを 0 に初期化するよりも、おそらくdefaultdictを使用する方が良いでしょう。しかし、何もインポートできないので、あなたのやり方で問題なく動作します。)

于 2012-11-28T17:04:46.187 に答える