我的意思是以某种方式将这个伪代码翻译成python3代码:
dict(itemName = itemRecipe)
到目前为止我尝试过:
1)
allItems = [{}]
itemName = 'Pancake'
itemRecipe = ['Eggs', 'Flour']
allItems[0].update(dict(itemName = itemRecipe))
这会产生一个数组,并且对象具有一个名为'itemName'
的键,而不是'Pancake'
。
2)
allItems = [{}]
itemName = 'Pancake'
itemRecipe = ['Eggs', 'Flour']
allItems[0].update(dict(locals()[itemName] = itemRecipe))
给我一个SyntaxError: keyword can't be an expression
。
我无所适从。也许有人可以帮助我吗?
答案 0 :(得分:5)
allItems.update({itemName: itemRecipe})
但是在你的代码中allItems(btw camelcase在Python中并不公平)是一个List,所以你应该追加它
allItems.append({itemName: itemRecipe})
如果你想让allItems成为一个dict,你可以这样做
allItems = {}
allItems[itemName] = itemRecipe
答案 1 :(得分:1)
list
上没有名为update
的属性,但是目前还不清楚你想用它做什么,但如果你想要的是一个单元素列表,其中包含一个字典的键是itemName
,其对应值为itemRecipe
,您只需allItems = [{itemName: itemRecipe}]
即可。
答案 2 :(得分:0)
allItems = [{}]
itemName = 'Pancake'
itemRecipe = ['Eggs', 'Flour']
allItems[0][itemName] = itemRecipe
print(allItems)
答案 3 :(得分:0)
如果你正在进行 lot 的词典列表操作,你可以使用PLOD库:
from PLOD import PLOD
allItems = [{}]
itemName = 'Pancake'
itemRecipe = ['Eggs', 'Flour']
new_list = PLOD(allItems).\
missingKey("itemName").\
addKey("itemName", itemName).\
addKey("itemRecipe", itemRecipe).\
returnList()
此代码查找没有“itemName”键的所有字典条目。然后它将“itemName”和“itemRecipe”应用于该词典列表。
结果:
>>> new_list
[{'itemRecipe': ['Eggs', 'Flour'], 'itemName': 'Pancake'}]
或者,为了得到幻想:
>>> print (PLOD(new_list).returnString())
[
{itemName: 'Pancake', itemRecipe: ['Eggs', 'Flour']}
]
如果你的代码充满了这样的操作,我只推荐这个库。如果这样做只需要很多开销。
这个库可以在pypi 2.7.x的PyPI和GitHub中找到。