関数呼び出しに基づいて X 個の等しい長さのリストを生成する関数があるとします。たとえば、関数呼び出しに 5 つの個別の文字列がある場合、5 つのリストを生成し、それらを .zip/join/merge して 1 つにする必要があります。
これを達成するために、私はこのモックアップ関数を使用しています:
def FetchData(*args):
returnlist = []
for arg in args:
datalist = generate.list(arg) #obviously not a real method.
if returnlist == []
returnlist = datalist
else:
returnlist = map(list, zip(returnlist, datalist))
return returnlist
これは、0、1、または 2 つの引数がある場合にうまく機能します。ただし、さらに多くの場合、事態は奇妙になります。
FetchData() が 4 つの引数を取得した場合の結果の例を次に示します。
>>> returnlist[0]
>>> [[['a', 'b'], 'c'], 'd']
しかし、私は必要です:
>>> ['a','b','c','d']
各 returnlist 項目を「strigifying」し、余分なシンボルを削除することで修正しましたが、それはあまりにも粗雑に思えます。
後で結果を理解する必要なく、生成されたリストを適切に .zip する方法があると確信しています。
誰でも助けることができますか?