基于列表长度的Python中的列表字典

时间:2018-08-13 08:59:55

标签: python list dictionary string-length

我在python中有以下列表

 days = ['Saturday', 'Monday', 'Thursday', 'Friday', 'Tuesday', 'Sunday', 
        'Wednesday']

我要创建以下字典

dayweek = {'Saturday': 1, 'Monday': 2, 'Thursday': 3, 'Friday': 4, 'Tuesday': 
5, 'Sunday': 6, 'Wednesday': 7}

我尝试了以下代码

     dayweek=dict(enumerate(days))

这将产生以下结果

  {0: 'Saturday', 1: 'Monday', 2: 'Thursday', 3: 'Friday', 4: 'Tuesday', 5: 
  'Sunday', 6: 'Wednesday'}

我该如何完成

我请求某人帮助我

4 个答案:

答案 0 :(得分:3)

您可以将enumerate的起始值设为1并使用字典理解:

days = ['Saturday', 'Monday', 'Thursday', 'Friday', 'Tuesday', 'Sunday', 
        'Wednesday']

dayweek = { day:index for index, day in enumerate(days, 1)}
print(dayweek)

# {'Saturday': 1, 'Monday': 2, 'Thursday': 3, 'Friday': 4, 'Tuesday': 5, 'Sunday': 6, 'Wednesday': 7}

答案 1 :(得分:2)

只需使用字典理解即可:

>>> m={d:i+1 for i,d in enumerate(days)}
>>> m
{'Saturday': 1, 'Monday': 2, 'Thursday': 3, 'Friday': 4, 'Tuesday': 5, 'Sunday': 6, 'Wednesday': 7}

答案 2 :(得分:2)

尝试一下:

dict(zip(days, range(1, len(days)+1)))

输出:

{'Monday': 2, 'Tuesday': 5, 'Friday': 4, 'Wednesday': 7, 'Thursday': 3, 'Sunday': 6, 'Saturday': 1}

答案 3 :(得分:0)

检查一下:

dict([(j, i) for i, j in enumerate(days, 1)])