2010-11-20 19 views
-2

Python:Pythonで変数 "x"が与えられたリストを作成するには?

私は変数xを持っています。 名前 "x"のリストを作成する必要があります

+1

あなたの質問を明確にしてください。あなたはすでにそれを少し下にしていますが、あなたが望むものは明確ではありません。 – BudgieInWA

+2

John Machinにあなたのコメントが与えられたら、私は、(「Charles Babbage」の引用のように)「アイデアの混乱」があると信じています...オブジェクトには名前がありません(デバッグに使用される '__name__'目的;リストはしない)。変数は名前であり、オブジェクトを指しています。しかし、変数名がランタイム値に依存する場合、コードやデザインは根本的に壊れています(より適切な場合には、例えば文字列を値や他のコレクションにマップすることができます)。 – delnan

+0

@delnan、ありがとうございました。私はdictを代わりに使用します。 – abhishek

答えて

4

dictを使用してください。

mylists = {} 

x = 'abhishek' 
mylists[x] = [] 

こうして、mylistsにすべてのリストがあります。 mylists[x]は、名前がxのリストです。

def make_list(method): 
    return [method.__name__] 

def x(): 
    pass 

make_list(x) 
# ["x"] 

もちろんあなたも方法の可変数を受け入れることができ、リストでそれらのそれぞれの名前を返す:

def make_list_of_names(*methods): 
    return [m.__name__ for m in methods] 

make_list(x, str, any_function) 
# ["x", "str", "any_function"] 
+0

'x'は文字列' abishek 'の名前ではありませんか? –

+0

'mylists'は' {'abhishek':[]} 'のようになりました。'mylists [x]'は 'mylists ['abhishek']' – BudgieInWA

+0

と同じです。申し訳ありませんが、私の質問に間違った枠組みがあり、変数の値を使ってリストを作成します。 – abhishek

2
x = [None, 0, 1, 42, 666, "Donald Duck", 3.14159, fractions.Fraction(355, 113)] 
+1

返事をありがとう。しかし、私は実行時に取得される変数 'x'の値を使ってジェネリックリストを作成する必要があります。例えば、 x = 'temp'、私は 'temp'という名前のリストを作成する必要があります – abhishek

+0

+1。しかし、より高い精度でpiを提供した場合、OPの方がより役に立ちます。 – aaronasterling

+1

@aaronsterling:私は以前の化身で既に行っています:http://en.wikipedia.org/wiki/John_Machin –

0

この

は、私はあなたの質問を解釈する方法です
+0

申し訳ありませんが、私は間違って自分の質問をフレーム、私は変数の値を使用してリストを作成したい。 – abhishek

0
x = 'temp' 
setattr(self,x,[]) 
getattr(self,x) 
# gives [] 
3

次にそれを実行してください:

>>> x = 42 
>>> x 
42 
>>> x = [x] 
>>> x 
[42] 
1

彼は文字列から変数を作りたいと思っています!
これはOPが望んでいるものの私の解釈です...

x = 'cat' 
*[insert magical code]* 
cat = [] 

(私はのSudhirがNosklos巧妙なアプローチを除いて、最も近い来たと思います)
ここSudhirsの少しの工夫です。

class NewVariables: 
    pass 
x = "new_variable_name" 
setattr(NewVariables, x, [ ]) 

タダ!

>>>NewVariables.new_variable_name 
[ ] 
1

あなたは

x = 'temp' 

を取ると、その最初の要素として「TEMP」とリストにXを有効にするかどうかはわかりません。それがあなたの質問から推測したものです。あなたがそれをやってみたかった場合

、このコードは、「一時」を含むリストにxとなります。

>>> x = 'temp' 
>>> x = [] + [x] 
>>> x 
['temp'] 
関連する問題