我想通过将列表的每个值赋给“like”来返回一个元素字典,但我一直想出错。这是我的代码。返回python中函数的数字字典
def f([a,b,c]):
d={a:'like'}
for x in [a,b,c]:
d[x]='like'
return d
我想通过将列表的每个值赋给“like”来返回一个元素字典,但我一直想出错。这是我的代码。返回python中函数的数字字典
def f([a,b,c]):
d={a:'like'}
for x in [a,b,c]:
d[x]='like'
return d
我的猜测是,这是你想要做什么:
def f(my_list):
return dict((x, "like") for x in my_list)
例子:
>>> f([1, 2, 3])
{1: 'like', 2: 'like', 3: 'like'}
在Python 2.7或以上,该功能也可以写成
def f(my_list):
return {x: "like" for x in my_list}
关于你的ori ginal code:没有这样的语法def f([a, b, c])
。我只能猜测这是什么意思,参数列表中没有方括号。如果您想传入列表,请使用单个参数。
在代码的更新版本中,其他错误已被删除。的d
初始化仍然是陌生的,因为这将是足够用了一个空的字典:
d = {}
dict.fromkeys
是这样的便捷构造:
>>> dict.fromkeys([1,2,3], 'like')
{1: 'like', 2: 'like', 3: 'like'}
以上的Python 2.7,你可以做一个字典的理解:
>>> my_list = [1, 2, 3,]
>>> {i: 'like' for i in my_list}
{1: 'like', 2: 'like', 3: 'like'}
编辑:看起来像@SvenMarnach编辑他的评论,因为我正在打字。
我不知道什么是你想这样做,但它也许是这样的:
def f(lst):
d = {}
for x in lst:
d[x] = 'like'
return d
,如果它是你可以做的或更好:
>>> lst = ['a', 'b', 'c']
>>> dict((x, 'like') for x in lst)
{'a': 'like', 'b': 'like', 'c': 'like'}
“错误“ - 想更具体? – 2012-01-11 14:43:44
我想我可能知道这个问题,有没有办法将列表转换为元组? – user1111042 2012-01-11 14:43:59
您的代码有多个错误,包括语法错误和逻辑错误。什么特别的错误信息给你? – 2012-01-11 14:44:27