如何从函数返回集合

hwazgwia  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(437)

我正在使用collection的namedtuple从函数中返回元组列表,如下所示:

def getItems(things_list) -> list:
    for i, j in enumerate(things_list):
        [*things_id] = things_list[i].id
        [*things_title] = things_list[i].title
        things_structure = namedtuple('things', ['id', 'title'])
        [*things_list] = [
            things_structure(things_id, things_title)
        ]
    return things_list

如果我跑了

callGetItems = getItems(list_of_things)  # assume list_of_things is a dictionary
print(callGetItems)

它只打印返回值的第一个索引,正如您所看到的,我实际上希望整个字典都打印出它们各自的id和title(假设字典中至少有3个不同的键值对)
p、 如果我在函数内打印,它会按预期打印存储在[*things\u list]变量中的所有元素,但对于迭代返回值(即在函数外)不能这样说。请帮忙。
要去除泡沫,假设这是字典中的物品列表:

list_of_things = [
    {"id" : 1,
     "title" : "waterbottle",
     "description" : "a liquid container"},
    {"id": 2,
     "title": "lunchbox",
     "description": "a food container"}
]

# etc...
jmo0nnb3

jmo0nnb31#

这就是你想要的吗?从原始dict列表创建命名元组列表?

from collections import namedtuple
list_of_things = [
    {"id": 1, "title": "waterbottle", "description": "a liquid container"},
    {"id": 2, "title": "lunchbox", "description": "a food container"},
]
def getItems(things_list) -> list:
    things_structure = namedtuple("things", ["id", "title"])
    return [things_structure(k["id"], k["title"]) for k in things_list]
new_things = getItems(list_of_things)
print(new_things)

相关问题