Python:获取数据的函数总是返回None

emz*_*ero 0 python dictionary list map

我有这个词典列表:

cust = [
        {"id": 1, "name": u"name 1", "bill_amount": 1000},
        {"id": 2, "name": u"name 2", "bill_amount": 5000},
        {"id": 3, "name": u"name 3", "bill_amount": 7600},
        {"id": 4, "name": u"name 4", "bill_amount": 30}
       ]
Run Code Online (Sandbox Code Playgroud)

我想得到一个名单的清单.

试试这个:

def getName(x): x["name"]
print map(getName, cust)
Run Code Online (Sandbox Code Playgroud)

返回此:

[None, None, None, None]
Run Code Online (Sandbox Code Playgroud)

为什么?我错过了一些明显的东西吗

And*_*ark 6

您也可以使用operator.itemgetter()而不是为此定义自己的函数:

>>> import operator
>>> map(operator.itemgetter("name"), cust)
[u'name 1', u'name 2', u'name 3', u'name 4']
Run Code Online (Sandbox Code Playgroud)