📜  Python|用空列表初始化字典

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

Python|用空列表初始化字典

在Python中,通常会遇到必须使用字典来存储列表的情况。但在这些情况下,通常会检查第一个元素,然后在它出现时创建一个与键对应的列表。但它一直想要一种方法来初始化字典。带列表的键。让我们讨论实现这一特定任务的某些方法。

方法#1:使用字典理解
这是进行此初始化的最常用的方法。在这种方法中,我们创建了编号。我们需要的键,然后在我们继续创建键时初始化空列表,以便于以后的附加操作而不会出错。

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using dictionary comprehension
  
# using dictionary comprehension to construct
new_dict = {new_list: [] for new_list in range(4)}
      
# printing result
print ("New dictionary with empty lists as keys : " + str(new_dict))

输出 :

New dictionary with empty lists as keys : {0: [], 1: [], 2: [], 3: []}

方法 #2:使用fromkeys()
fromkeys()可用于通过指定额外的空列表作为参数以及需要作为字典键的元素范围来执行此操作。

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using fromkeys()
  
# using fromkeys() to construct
new_dict = dict.fromkeys(range(4), [])
      
# printing result
print ("New dictionary with empty lists as keys : " + str(new_dict))

输出 :

New dictionary with empty lists as keys : {0: [], 1: [], 2: [], 3: []}

方法 #3:使用 defaultdict
这是在不初始化其值的情况下使用任何键的最 Pythonic 方式和无错误方式,必须告知其所有键的默认容器的类型,然后相应地评估操作和结构。

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using defaultdict
from collections import defaultdict
  
# initializing dict with lists
new_dict = defaultdict(list)
  
# performing append
# shows no error
new_dict[0].append('GeeksforGeeks')
      
# printing result
print ("New dictionary created : " + str(dict(new_dict)))

输出 :

New dictionary created : {0: ['GeeksforGeeks']}

方法 #4:使用 setdefault
setdefault()可用于通过在理解中指定键值对来执行此操作。此方法无需像方法 #3 中所要求的那样导入模块。

# Python3 code to demonstrate 
# to initialize dictionary with list 
# using setdefault
  
# initializing dict with lists
new_dict = {}
[new_dict.setdefault(x, []) for x in range(4)]
  
# performing append
# shows no error
new_dict[0].append('GeeksforGeeks')
      
# printing result
print ("New dictionary created : " + str(dict(new_dict)))

输出 :

New dictionary created : {0: ['GeeksforGeeks'], 1: [], 2: [], 3: []}

方法 #5:使用内置函数:dict 和 zip
内置函数dict, zip结合列表推导可以达到预期的效果。

# Python3 code to demonstrate 
# use of dict() and zip() built-ins to demonstrate
# initializing dictionary with list 
  
keys = range(4)
new_dict = dict(zip(keys, ([] for _ in keys)))
  
print(new_dict)# performing append
# shows no error
new_dict[0].append('GeeksforGeeks')
      
# printing result
print ("New dictionary created : " + str(dict(new_dict)))

输出 :

New dictionary created : {0: ['GeeksforGeeks'], 1: [], 2: [], 3: []}