2016-09-07 3 views
0

私はPythonの新機能です。私は理想的には元の名前で、さまざまな数のオブジェクト(最終的にはlistsまたはpandas)を返すようにしています。Pythonの関数で元の名前のオブジェクトを(さまざまな数)戻す方法

これまでのところ、私はこのような何かを見ています:

def function(*Args): 
    Args = list(Args)  
    for i in range(len(Args)): 
     Args[i] += 1 
     print Args[i] 
    return *all variables with original name, in this case a, b, c, d * 

a=1 
b=2 
c=3 
d=4 

a, b, c, d = function(a, b, c, d) 

すべてのヘルプ、アイデアやコメントは非常に高く評価されるだろう。ありがとう。

+1

[どのように私はPythonでの変数の変数番号を作成するのですか?]の可能な重複(http://stackoverflow.com/questions/1373164/how-do-i-create-a-variable-number- –

+2

実際にこれを行う方法はありません - あなたも本当にしたいですか?たとえば、値 '1'は、呼び出し名前空間に 'a = aa = aaa = 1'という名前を持つことができます。あなたがしたいことに応じて、 'locals'や' globals'組み込み関数をいくつか使うことができるでしょうが、一般的にそれは必要ないはずです。ここのエンドゲームは何ですか?なぜこれが欲しいのですか? – mgilson

+0

あなたの関数が 'function(float(" NaN ")、a b else c、d + e、4 + 5)'として呼び出された場合、引数の元の名前は何ですか? – kindall

答えて

0

タプルを返すだけですか?

def function(*Args): 
    Args = list(Args)  
    for i in range(len(Args)): 
     Args[i] += 1 
     print Args[i] 
    return Args 

a, b, c, d = function(a, b, c, d) 
+0

私はこれが特定の例でOPが求めていることに同意しますが、実際に '* Args = function(* Args)'と同等のものがほしいと思っていますか? – dblclik

+0

この関数は 'Args = function(* Args)'として使用できますか?私はここで正確に何が求められているのか分かりませんが、他に何があるのか​​本当に分かりません。 – Eric

+0

私は完全に同意します - OPはダミーで 'dict'を返すべきではないと思っていますIDはキーとして、名前と値はタプルとして返され、常に1つの戻り値しか持たないようにします。 – dblclik

0

@ Xavier C.のように試してみましたが、うまくいくようです。リスト/入力引数は、私は業界の後に名前をつけて、したがってpreseveしたいと思います。それを達成する方法はありますか?

def BBGLiveRequest(*args): 
    data = [] 

    for i in range(len(args)):  
     print args[i] 
     result = BLPTS(args[i], ['PX_Last'])  
     result.get() 
     print result.output 
     data.append(result.output) 

    return data 
+0

'data = []'を 'data = {}'と 'data.append(result.output)'に置き換えることによって辞書を使用してください。 'data [args [i]] = result.output 'を指定してください。そして、それぞれの結果に 'data ['oneofinputarguments']'でアクセスすることができます。ところで、ループを 'for i in * args'に設定すると、変数' i'は自動的に 'args [i]'になります。より良いPythonの機能の1つで、多くのタイピングが節約されます。 – StefanS

関連する問題