2

関数呼び出しに基づいて 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 する方法があると確信しています。

誰でも助けることができますか?

4

1 に答える 1