1

如何同时创建和追加字典?

def buildList(theDict):
    array=[]
    for a,b in theDict.iteritems():
        array.append([a,b])

    return array
print buildList({"a": 1,"b": 2,"c": 3})

这将打印出列表列表。我想在不创建任何新变量的情况下打印出字典列表。

4

3 回答 3

3

如果我正确理解你想要什么,这段代码应该可以工作。

def list_of_dicts(d):
    return [{key:value} for key, value in d.iteritems()]

print list_of_dicts({"a": 1,"b": 2,"c": 3})

list_of_dicts()使用列表推导,它dict为传入字典中的每个键/值对创建一个新条目。

您知道如何使用列表推导来重写您的示例并返回列表列表吗?它只需要更改上面的三个字符。

PS 我使用 PEP 8 名称(小写而不是 camelCase)。

于 2012-06-15T00:57:33.730 回答
1

array.append({a:b})代替array.append([a,b])

或使用列表理解

array = [{a:b} for a,b in theDict.iteritems()]
于 2012-06-15T01:50:50.547 回答
0

您的答案已经几乎是您所需要的。当您附加到列表时,您正在使用以下代码创建一个新列表:[a, b]

所以,用另一段代码替换那段代码,一个创建字典的代码。你知道如何创建字典!

如果您需要提示,请查看我的另一个答案中的列表推导,看看您是否可以弄清楚列表推导如何创建新的字典值。

我知道你可以解决这个问题!

于 2012-06-15T01:20:38.503 回答