我编写了一个函数来返回多个列表(至少一个)。如下所示:
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)
为了做到这一点,我使用元组以便可以使用
^{pr2}$查询由attrList
确定的多个属性列表。当我返回多个列表(不止一个)时,它工作得很好。但如果只返回一个列表,则结果是一个包含一个列表的元组,例如:
list1 = get_stock_atrributes_data()
list1
现在是元组而不是列表。我读了一些关于返回元组的解释。据说元组中的元素将被自动解包和分配。对于包含多个元素的返回元组,它是有效的。但是对于只包含一个元素的元组,结果不会被解包。我很困惑,希望有人能给我解释。在
下面是一个例子,你应该能够使用它来修改你的代码并得到你想要的结果。在
这将提供:
^{pr2}$现在,如果我这么做了:
我将得到a的元组:
所以我取回的列表是:(注意逗号)
现在:
如你所愿。在
方法只返回1个元素还是2个元素?或者该方法是否可能返回X多个元素?在
您可以尝试将结果设置为变量,然后创建新的列表列表:
本例中的+运算符执行追加操作,但由于
append()
没有返回值,因此不能在这里使用它。在这应该适用于返回
(X,)
或(X,Y,...)
形式的元组的情况。在相关问题 更多 >
编程相关推荐