列表和字符串的元组

时间:2012-11-28 16:56:00

标签: python list tuples

所以给出了一个星期几的人们偏好列表的随机列表,如每个子列表中的7个位置,第一个位置值6个点,第二个5个,第三个4个,第四个4个,第三个,第二个,第二个,最后一个没有得到任何偏好点:

    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']]

我正在制作的功能应该输出得分最高的元组,以及每天的总分数列表,以天数为单位。上面的输出是:

    ('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]

我无法导入除数学之外的任何东西我怀疑我需要

1 个答案:

答案 0 :(得分:0)

您需要一些方法来跟踪您所处的位置。 enumerate函数可以帮到你!

试试这个:

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)

(作为未来的注释,使用a defaultdict可能会更好,而不是手动将所有内容初始化为0.但由于您无法导入任何内容,因此您的方式可以正常工作。)