複数のリスト(少なくとも1つ)を返す関数を記述します。関数戻りタプル。時々リストを取得し、タプルを得ることがあります
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)
それを行うために、私はattrList
によって決定される複数の属性のリストを照会する
list1, list2 = get_stock_atrributes_data()
を使用することができますので、私はタプルを使用します。それは以下のように見えるです。複数のリスト(複数のリスト)を返すと、かなりうまく動作します。私は1つのリストだけを返した場合でも、その結果は、例えば、1つのリストを含むタプルです:
list1 = get_stock_atrributes_data()
list1
は今タプルではなくリストです。タプルを返すことについての説明を読んだ。タプル内の要素は自動的に解凍され、割り当てられると言われています。複数の要素を持つ返されたタプルの場合、それは機能します。しかし、1つの要素のみを含むタプルの場合、結果はアンパックされません。私はこれで混乱し、誰かが私に説明を与えることができる願っています。
良い答えですが、カンマを強調してください。 –
こんにちは、それは問題を解決しました!単純なカンマで問題を解決する理由を説明するのを手伝ってください。 – dashenswen
この関数は常にタプルを返します。実際にタプルの要素に興味がある場合は、それらのタプルに直接アクセスする必要があります。カンマを使用すると、タプルの最初の(そして唯一の)要素にアクセスします。 – Robbie