📜  Python|使用列表索引值初始化字典

📅  最后修改于: 2022-05-13 01:54:41.346000             🧑  作者: Mango

Python|使用列表索引值初始化字典

在使用字典时,我们可能会遇到一个问题,我们需要将列表中的每个值与其索引附加在一起,以便之后用于解决问题。这种技术通常在竞争性编程领域非常有用。让我们讨论可以执行此任务的某些方式。

方法 #1:使用字典理解和enumerate()
上述方法的组合可以完成这项任务。在这种情况下,enumerate() 内置的用它的索引迭代值的能力被用来使用字典理解构造一个对应值的键。

# Python3 code to demonstrate working of
# Initializing dictionary with index value
# Using dictionary comprehension and enumerate()
  
# Initialize list
test_list = ['gfg', 'is', 'best', 'for', 'CS']
  
# Printing original list 
print("The original list is : " + str(test_list))
  
# using dictionary comprehension and enumerate()
# Initializing dictionary with index value
res = {key: val for val, key in enumerate(test_list)}
  
# printing result 
print("Constructed dictionary with index value : " + str(res))
输出 :
The original list is : ['gfg', 'is', 'best', 'for', 'CS']
Constructed dictionary with index value : {'gfg': 0, 'is': 1, 'best': 2, 'CS': 4, 'for': 3}

方法#2:使用zip() + dict() + range() + len()
也可以通过嵌套上述函数来执行此任务。上面enumerate执行的任务是由rangelen函数处理,而zipdict分别执行将键与值绑定和字典转换的任务。

# Python3 code to demonstrate working of
# Initializing dictionary with index value
# Using zip() + dict() + range() + len()
  
# Initialize list
test_list = ['gfg', 'is', 'best', 'for', 'CS']
  
# Printing original list 
print("The original list is : " + str(test_list))
  
# using zip() + dict() + range() + len()
# Initializing dictionary with index value
res = dict(zip(test_list, range(len(test_list))))
  
# printing result 
print("Constructed dictionary with index value : " + str(res))
输出 :
The original list is : ['gfg', 'is', 'best', 'for', 'CS']
Constructed dictionary with index value : {'gfg': 0, 'is': 1, 'best': 2, 'CS': 4, 'for': 3}