首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定义一个将列表转换为字典的函数,同时在没有键值的地方插入'None‘(Python3)?

如何定义一个将列表转换为字典的函数,同时在没有键值的地方插入'None‘(Python3)?
EN

Stack Overflow用户
提问于 2020-05-20 18:31:08
回答 2查看 23关注 0票数 0

假设我们有一个这样的contact_list:

代码语言:javascript
复制
[["Joey", 30080],["Miranda"],["Lisa", 30081]]

因此,本质上"Miranda“没有邮政编码,但对于我想定义的函数,我希望它自动检测到邮政编码,并将"None”添加到她的值槽中,如下所示:

代码语言:javascript
复制
{
"Joey": 30080,
"Miranda": None,
"Lisa": 30081
}

到目前为止,我有这个,它只是将列表转换为字典:

代码语言:javascript
复制
def user_contacts(contact_list):
    dict_contact = dict(contact_list)
    print(dict_contact)

我不确定我从哪里开始,就像在代码中为"Miranda“添加None一样。目前,我只得到一个错误,说第一个元素("Miranda")需要两个长度而不是一个长度。

最后,我只想在已定义的函数: user_contacts中传递一个类似上面的列表,并再次能够将上面的字典作为输出。

代码语言:javascript
复制
user_contacts([["Joey", 30080],["Miranda"],["Lisa", 30081]]) 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-20 18:48:31

所以这就是你能做的。您可以检查列表中某个元素的len是否符合预期(在本例中,名称和邮政编码为2)。然后如果它没有达到预期,你可以添加"none":

代码语言:javascript
复制
contacts = [["Joey", 30080], ["Miranda"], ["Lisa", 30081]]
contacts_dict = {}
for c in contacts:
    if len(c) < 2:
        c.append('None')
    contacts_dict.update({c[0]: c[1]})
print(contacts_dict)

输出结果为:

代码语言:javascript
复制
{'Joey': 30080, 'Miranda': 'None', 'Lisa': 30081}
票数 0
EN

Stack Overflow用户

发布于 2020-05-20 18:48:15

试试这个:

代码语言:javascript
复制
def user_contacts(contact_list):
    dict_contact = dict((ele[0], ele[1] if len(ele) > 1 else None) for ele in 
    contact_list)
    print(dict_contact)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61910842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档