繁体   English   中英

Python:使用列表索引号作为键并使用列表元素作为值来创建字典吗?

[英]Python: Create dictionary with list index number as key and list element as value?

我所看到的所有问题与我想做的事情完全相反:

说我有一个清单:

lst = ['a','b','c']

我正在寻找一个字典,其中的键是元素编号(以1而不是0开头),而list元素是值。 像这样:

{1:'a', 2:'b', 3:'c'}

但名单很长。 我已经阅读了一些有关enumerate()的内容,但是我所看到的所有内容都使用list元素作为键。

我找到了这个:

dict = {tuple(key): idx for idx, key in enumerate(lst)}

但这会产生:

{'a':1, 'b':2, 'c':3}

...这与我想要的相反。 而且,这也是一种怪异的表示法,它使刚接触Python的人感到困惑。

意见非常感谢! 谢谢!

enumerate有一个start关键字参数,因此您可以从所需的任何数字start计数。 然后将其传递给dict

dict(enumerate(lst, start=1))

您还可以编写字典理解

{index: x for index, x in enumerate(lst, start=1)}

使用Dict理解和枚举

print({x:y for x,y in enumerate(lst,1)})

{1:“ a”,2:“ b”,3:“ c”}

使用Dict Comprehension,zip和range-

print({x:y for x,y in zip(range(1,len(lst)+1),lst)})

{1:“ a”,2:“ b”,3:“ c”}

默认情况下,枚举从0开始,但是您可以通过第二个参数start来设置此值,如果要从1开始而不是从零开始,则可以向每个迭代器添加+1:

print({index+1:value for index,value in enumerate(lst)})

输出:

{1: 'a', 2: 'b', 3: 'c'}

上面的dict理解与:

dict_1={}
for index,value in enumerate(lst):
    dict_1[index+1]=value
print(dict_1)

我认为以下代码应该有所帮助。

my_list = ['A', 'B', 'C', 'D']
my_index = []
my_dict = {}

for i in range(len(my_list)): 
    my_index.append(i+1)

for key in my_index: 
    for value in my_list: 
        my_dict[key] = value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM