【发布时间】:2017-04-03 12:26:04
【问题描述】:
我编写了一个函数来返回多个列表(至少一个)。如下所示:
def get_stock_atrributes_data(stock, attrList):
dbClient = MongoClient()
db = dbClient.StockAnnual
#only query the data we need
query = {attr: 1 for attr in attrList}
#exclude id
query['_id'] = 0
cursor = db[stock].find({}, query).sort([('date', pymongo.ASCENDING)])
#tranform cursor to list so it becomes iterative
l = list(cursor)
res = []
for attr in attrList:
res.append([d[attr] for d in l])
return tuple(res)
为了做到这一点,我使用元组,所以我可以使用
list1, list2 = get_stock_atrributes_data()
查询由attrList确定的多个属性列表。当我返回多个列表(多个列表)时,它工作得很好。但是如果我只返回一个列表,结果是一个包含一个列表的元组,例如:
list1 = get_stock_atrributes_data()
list1 现在是一个元组而不是一个列表。我读了一些关于返回元组的解释。据说元组中的元素会自动解包并赋值。对于具有多个元素的返回元组,它可以工作。但是对于只包含一个元素的元组,结果不会被解包。我对此感到困惑,希望有人能给我解释。
【问题讨论】: