为了账号安全,请及时绑定邮箱和手机立即绑定

使用循环,从列表创建字典

使用循环,从列表创建字典

MMMHUHU 2021-09-24 16:01:40
我正在尝试创建一个函数来创建一个字典,给出一个将被输入的列表。我认为通过使用 for 循环,我可以获取列表,创建键,然后使用循环输入列表中每个项目的值。使用此列表作为输入:simpsons = 'Homer', 'Bart', 'Marge', 'Lisa'def create_dict_from_list(names):    name_dict = {}    for name in names:        name_dict['name']= name    return name_dict这仅返回一个键值对。看起来字典不会创建多个值,这就是为什么它只返回一个而不遍历列表的其余部分。当我更改时name_dict[name] = name,它将创建所有键、值,但键和值都是名称。当我更改时name_dict[name] = 'name',我得到键值反转,但它返回列表中的所有 4 个项目。
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

对于您想要的答案(基于我对您问题的理解),我不确定您为什么使用 for 循环。您的函数中不需要 for 循环。只需一个简单的任务即可完成这项工作。你不必要地把它复杂化了。


simpsons = ['Homer', 'Bart', 'Marge', 'Lisa']


def create_dict_from_list(names):

    name_dict = {}

    name_dict['name'] = names # <--- No need of for loop

    return name_dict

create_dict_from_list(simpsons)

# {'name': ['Homer', 'Bart', 'Marge', 'Lisa']}


查看完整回答
反对 回复 2021-09-24
?
繁花如伊

TA贡献2012条经验 获得超12个赞

您可以将默认值设置[]为键的空列表'name' 对于给定的示例,for如果要将所有名称分配给键,则可以不使用循环(如@Bazingaa 所回答)'name'。另一方面,如果您想有选择地分配名称,请使用for循环。


simpsons = 'Homer', 'Bart', 'Marge', 'Lisa'


def create_dict_from_list(names):

    name_dict = {}

    name_dict.setdefault('name',[])

    for name in names:

        name_dict['name'].append(name)

    return name_dict

create_dict_from_list(simpsons)

输出


{'name': ['Homer', 'Bart', 'Marge', 'Lisa']}


查看完整回答
反对 回复 2021-09-24
  • 2 回答
  • 0 关注
  • 338 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号