定义一个接受项列表并返回逗号分隔的项名称列表的函数

时间:2018-10-18 10:11:21

标签: python python-3.x

对不起,我是Python的新手,并且一直使用此功能。

item_pencil = {
    "id": "pencil",

    "name": "a HB Pencil",

    "description":
    "Normal pencil"
}

item_pen = {
    "id": "pen",

    "name": "a Ballpoint Pen",

    "description":
    "Standard ballpoint pen"
}

我已经对该函数进行了编码,但是它返回了有关物品的所有信息

def list_of_items(items):
    n = ",".join(map(str, items))
    #n = ",".join([str(name) for name in items])
    return n

print(list_of_items([item_pen, item_pencil]))

我得到的输出

{'id': 'pen', 'name': 'a Ballpoint Pen', 'description': 'Standard ballpoint pen.'}, 
{'id': 'pencil', 'name': 'a HB Pencil', 'description': 'Normal Pencil'}

但是我想要的输出是这个

'a Ballpoint Pen, a HB Pencil'

对不起,如果我缺少明显的内容。预先感谢

1 个答案:

答案 0 :(得分:1)

您快要接近了。您需要遍历列表并获取'name'键的值:

def list_of_items(items):
    n = ", ".join([item['name'] for item in items])
    return n

您可以同时使用列表推导或生成器:

', '.join([item['name']) for item in items])  # list comprehension
', '.join(item['name'] for item in items)     # generator expression

但是列表理解不仅更快,而且内存效率更高[source]。