0
dic = {}
def myfunc():
    return 4,"MyName"

x,y = myfunc()
dic[x] = y

有没有办法将第 5 行和第 6 行写成一行?

4

2 回答 2

2

首先,澄清你想要的是使用字典还是元组,然后不要使用dict,它是用于定义字典的 Python 名称。是的,您可以将值检索到字典中:

mydict = {'foo':'value'}
def myfunc():
    return 4,"MyName"

x, mydict[x] = myfunc()
print mydict

回报:

{'foo': 'value', 4: 'MyName'}
于 2013-10-19T10:41:31.260 回答
1

您可以将元组列表与字典构造函数一起使用,如下所示:

>>> values = (4, "MyName")
>>> d = dict([values])
>>> d
{4: 'MyName'}

所以你可以做

>>> d = dict([myfunc()])
>>> d
{4: 'MyName'}

如果你有一个已经存在的字典要更新,你可以这样做:

>>> dct = {'foo': 'bar'}
>>> dct.update(dict([myfunc()]))
>>> dct
{'foo': 'bar', 4: 'MyName'} 
于 2013-10-19T10:41:58.977 回答