创建一个循环遍历嵌套列表和 return 字典的函数: Empty elements in list return a none in dictionary

Create a function that loops through a nested list and return a dictionary: Empty elements in list return a none in dictionary

我正在使用 Python3。我需要创建一个函数contacts() 循环一个嵌套列表和return一个字典一个项目每个联系人姓名和区号。如果数据不包括区号(空元素)那么值应该是None.

我的首发名单是:

contact_list = [["Mike Jordan", 310], ["Jay Z"], ["Oprah Winfrey", 213], ["Leo DeCaprio", 212]]

我的 return 词典应该是:

{
    "Mike Jordan": 310,
    "Jay Z": None,
    "Oprah Winfrey": 213,
    "Leo DeCaprio": 212,    
}

我是 python 的新手(我过去用过 R)。我希望有人能帮我解决这个问题。这看起来很简单,但我卡在了我的循环必须处理空值的地方。

这是我最近的尝试:

none= None

def contacts(contact_list):
  for list in contact_list:
    if len(list) == 2:
      print(list)
    else:
      print(None)

但是这个 returns:

['Mike Jordan', 310]
None
['Oprah Winfrey', 213]
['Leo DeCaprio', 212]

假设您的 contact_list

中永远不会有重复的名字
def contacts(contact_list):
    contact_dict = {}
    for contact in contact_list:
        try:
            contact_dict[contact[0]] = contact[1]
        except IndexError:
            contact_dict[contact[0]] = None
    return contact_dict