我想通過將列表的每個值賦給「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