7

次のような文字列のリストがあります。

names = ['apple','orange','banana'] 

そして、リスト内の各要素のリストを作成したいと思います。これは、文字列とまったく同じ名前になります。

apple = []  
orange = []  
banana = []  

Pythonでそれを行うにはどうすればよいですか?

4

2 に答える 2

32

dictこれを行うには、 :を作成します。

fruits = {k:[] for k in names}

次に、それぞれにアクセスします(たとえば: fruits['apple'])-別々の変数の道を進みたくない!

于 2013-01-09T15:58:41.390 に答える
6

常にJon Clements の answerを使用してください。


globals()グローバル名前空間をサポートするディクショナリを返します。この時点で、他のディクショナリと同様に扱うことができます。 これを行うべきではありません。 名前空間の汚染につながり、既存の変数を上書きする可能性があり、これに起因する問題のデバッグがより困難になります。

for name in names:
    globals().setdefault(name, [])
apple.append('red')
print(apple)  # prints ['red']

後で変数「apple」を参照するには、リストに「apple」が含まれていることを事前に知っておく必要があります。その時点で、変数を通常どおりに定義できます。したがって、これは実際には役に立ちません。ジョンの答えも辞書を生成することを考えると、を使用する利点はありませんglobals

于 2013-01-09T16:19:02.947 に答える