【发布时间】:2020-06-28 15:04:49
【问题描述】:
我正在使用 Python 3。我需要创建一个函数:contacts(),它遍历嵌套列表并为每个联系人姓名和区号返回一个项目的字典。如果数据不包含区号(空元素),则值应为None。
我的首发名单是:
contact_list = [["Mike Jordan", 310], ["Jay Z"], ["Oprah Winfrey", 213], ["Leo DeCaprio", 212]]
我的返回字典应该是:
{
"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)
但这会返回:
['Mike Jordan', 310]
None
['Oprah Winfrey', 213]
['Leo DeCaprio', 212]
【问题讨论】:
-
您期望的输出是什么?该程序似乎正在做它应该做的事情。 P.S.:避免使用
list作为名称/变量。它是创建列表的函数的保留关键字。 -
@navneethc。我正在尝试获取字典,并且我希望该字典包含名称和区号。如果没有区号(即“Jay Z”),我希望字典返回无。现在我只创建了列表,并且缺少 Jay Z 条目,因为区号没有与名称关联的值。
-
我看到您的问题的解决方案已发布。也就是说,这里是学习如何创建、访问和修改字典的好地方:realpython.com/python-dicts
标签: python dictionary for-loop nested-lists is-empty