我正在尝试创建一个函数,该函数创建一个字典,给定要输入的列表。 我认为通过使用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个项目。
答案 0 :(得分:1)
对于想要的答案(基于我对问题的理解),我不确定为什么要使用for循环。您不需要在函数中进行循环。只需简单的任务即可完成工作。您不必要地使其复杂化。
SELECT * From (
SELECT * FROM table
UNION ALL
SELECT * FROM table
) as T Order by T.field DESC ,table.timestamp DESC
答案 1 :(得分:0)
您可以将默认值设置为键[]
的空白列表'name'
对于给定的示例,如果要将所有名称分配给键for
,则可以不使用'name'
循环(@Bazingaa回答)。另一方面,如果要有选择地分配名称,请使用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']}