如何使用 Python 中的函数将多个值附加到键?
How to append multiple values to a key using a function in Python?
我想声明一个 dictName
变量。然后我想实现一个函数,将值添加到 dictName
的键。我还希望将这些键添加到函数中。
所以基本上像我试过的东西,但不起作用,因为它只更新最后一个函数调用,而不是添加它!:
dictName = dict()
def addValToDict(val1,val2):
dictName.update([('firstkey:', [val1]),('secondKey:', [val2])])
addValToDict(5,1)
addValToDict(6,3)
addValToDict(-2,2)
我得到的输出:
{'firstkey:': [-2], 'secondKey': [2]}
我想要的输出:
{'firstkey:': [5,6,-2], 'secondKey': [1,3,2]}
这对你有用吗?
dictName = dict()
dictName['firstKey']=[]
dictName['secondKey']=[]
def addValToDict(val1,val2):
dictName['firstKey'].append(val1)
dictName['secondKey'].append(val2)
addValToDict(5,1)
addValToDict(6,3)
addValToDict(-2,2)
#{'secondKey': [1, 3, 2], 'firstKey': [5, 6, -2]}
你可以这样做
def addValToDict(val1,val2):
dictName['firstKey'] += [val1]
dictName['secondKey'] += [val2]
我认为您可以使用 list
的 defaultdict
。
from collections import defaultdict
dictName = defaultdict(list)
def addValToDict(val1,val2):
dictName['firstkey'].append(val1)
dictName['secondKey'].append(val2)
下面打印所需的输出
dictName = dict()
def appendValue(key, value):
dictName.setdefault(key, []).append(value)
def addValToDict(val1,val2):
appendValue('firstkey', val1)
appendValue('secondKey', val2)
addValToDict(5,1)
addValToDict(6,3)
addValToDict(-2,2)
print(dictName)
更新
谢谢@Jon Clements。使用 'setdefault' 帮助我删除了 not in
比较。
您需要附加到当前条目而不是更新它(完全替换它)。这些中的任何一个都适合你:
dictName = dict(firstkey=[], secondkey=[])
def addValToDict(val1, val2):
dictName['firstkey'].append(val1)
dictName['secondkey'].append(val2)
或
dictName = dict()
def addValToDict(val1, val2):
dictName.setdefault('firstkey', []).append(val1)
dictName.setdefault('secondkey', []).append(val2)
如果您不确定最终会写或读哪些条目,那么这是另一种选择:
import collections
dictName = collections.defaultdict(list)
def addValToDict(val1, val2):
dictName['firstkey'].append(val1)
dictName['secondkey'].append(val2)
我想声明一个 dictName
变量。然后我想实现一个函数,将值添加到 dictName
的键。我还希望将这些键添加到函数中。
所以基本上像我试过的东西,但不起作用,因为它只更新最后一个函数调用,而不是添加它!:
dictName = dict()
def addValToDict(val1,val2):
dictName.update([('firstkey:', [val1]),('secondKey:', [val2])])
addValToDict(5,1)
addValToDict(6,3)
addValToDict(-2,2)
我得到的输出:
{'firstkey:': [-2], 'secondKey': [2]}
我想要的输出:
{'firstkey:': [5,6,-2], 'secondKey': [1,3,2]}
这对你有用吗?
dictName = dict()
dictName['firstKey']=[]
dictName['secondKey']=[]
def addValToDict(val1,val2):
dictName['firstKey'].append(val1)
dictName['secondKey'].append(val2)
addValToDict(5,1)
addValToDict(6,3)
addValToDict(-2,2)
#{'secondKey': [1, 3, 2], 'firstKey': [5, 6, -2]}
你可以这样做
def addValToDict(val1,val2):
dictName['firstKey'] += [val1]
dictName['secondKey'] += [val2]
我认为您可以使用 list
的 defaultdict
。
from collections import defaultdict
dictName = defaultdict(list)
def addValToDict(val1,val2):
dictName['firstkey'].append(val1)
dictName['secondKey'].append(val2)
下面打印所需的输出
dictName = dict()
def appendValue(key, value):
dictName.setdefault(key, []).append(value)
def addValToDict(val1,val2):
appendValue('firstkey', val1)
appendValue('secondKey', val2)
addValToDict(5,1)
addValToDict(6,3)
addValToDict(-2,2)
print(dictName)
更新
谢谢@Jon Clements。使用 'setdefault' 帮助我删除了 not in
比较。
您需要附加到当前条目而不是更新它(完全替换它)。这些中的任何一个都适合你:
dictName = dict(firstkey=[], secondkey=[])
def addValToDict(val1, val2):
dictName['firstkey'].append(val1)
dictName['secondkey'].append(val2)
或
dictName = dict()
def addValToDict(val1, val2):
dictName.setdefault('firstkey', []).append(val1)
dictName.setdefault('secondkey', []).append(val2)
如果您不确定最终会写或读哪些条目,那么这是另一种选择:
import collections
dictName = collections.defaultdict(list)
def addValToDict(val1, val2):
dictName['firstkey'].append(val1)
dictName['secondkey'].append(val2)