![](/img/trans.png)
[英]Python: Convert list to a dictionary, where key is the index of the element of the list
[英]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.