【发布时间】:2021-04-27 16:28:56
【问题描述】:
我正在使用集合的 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 和标题。(假设至少有 3 个不同的键值对字典)
附:如果我在函数内打印,它会按预期打印存储在 [*things_list] 变量中的所有元素,但对于迭代返回值(即在函数外部)则不能这样说。请帮忙。
要对事物进行去混淆假设这是字典 list_of_things:
list_of_things = [
{"id" : 1,
"title" : "waterbottle",
"description" : "a liquid container"},
{"id": 2,
"title": "lunchbox",
"description": "a food container"}
]
# etc...
【问题讨论】:
-
你的事物列表是一个列表字典。我认为你的意思是翻转你的 { 和 [ 符号。并创建一个字典列表。对吗??
-
@BradDay 是的,就像那样。抱歉,我可能在解释中混淆了一些东西。
标签: python function collections return namedtuple