基于列表长度的Python中的列表字典[重复]

问题描述 投票:0回答:4

这个问题在这里已有答案:

我在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'}

我如何做到这一点

我请求有人帮助我

python list dictionary string-length
4个回答
0
投票

看一下这个:

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

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}

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
投票

试试这个 :

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

输出:

{'Monday': 2, 'Tuesday': 5, 'Friday': 4, 'Wednesday': 7, 'Thursday': 3, 'Sunday': 6, 'Saturday': 1}
© www.soinside.com 2019 - 2024. All rights reserved.