2017-11-09 15 views
0

変数の内容を使って新しいリストを作成するにはどうすればいいですか?変数の内容を持つリストに名前をつける

EDIT:これを実行した後、明確にするために3つの新しいリストが必要です。 dev、test、prodという名前のリストが必要です。

#!/usr/bin/python 

group_list = ['dev', 'test', 'prod'] 

for group in group_list: 
    # this is obviously going to create a new list called group 
    # i want to create a list using the contents of the "group" variable 
    group = [] 
+0

あなたは 'new_list = [group]'のような意味ですか?または、あなたは* dev(最初の回)と呼ばれるリスト*を意味するのでしょうか? –

+1

3つの異なる答えが3つの異なる質問に答えるという事実は、あなたの質問が十分に明確でないことを示唆しています。いくつかのサンプル出力を提供できますか? –

答えて

1

これにはいくつかの方法がありますが、最も簡単なのは辞書を使用することです。

group_dict = {group: [] for group in group_list} 

これは、それを扱うときは、すべての便利なニシキヘビのツールにアクセスすることができます辞書

{ 
    'dev': [], 
    'test': [], 
    'prod': [] 
} 

であなたを残します。 (反復など)

+0

ちょうどdictを使用してください。名前空間に動的な名前を作成しようとしないでください。 – nosklo

0

これはお勧めないであるとにかかわらず、あなたがそこにをやろうとしているか、おそらくより良い方法ありませんが、これは文字列が変数名に変換することができますか次のとおりです。

#!/usr/bin/python 

group_list = ['dev', 'test', 'prod'] 

for group in group_list: 
    globals()[group] = [] 

print(dev) # -> [] 
    #^'dev' is now a variable name! 

globals()dictionaryであるため、ここで「マジック」が発生します。ここで、Pythonはすべての定義済みの変数ables。他のdictionaryと同じように手をつけて変更することができます。しかし、しないでください。

-1
for g in group: 
    exec(g + ' = []') 

これは、groupの値で指定されたリストを作成します。 'exec`を使用して非常に慎重にしてください。それがexecのあなたのコードであることを確認してください。

+0

この回答は、明確化編集で述べた3つのリストを正確に示しています。 –

関連する問題