次のような文字列のリストがあります。
names = ['apple','orange','banana']
そして、リスト内の各要素のリストを作成したいと思います。これは、文字列とまったく同じ名前になります。
apple = []
orange = []
banana = []
Pythonでそれを行うにはどうすればよいですか?
次のような文字列のリストがあります。
names = ['apple','orange','banana']
そして、リスト内の各要素のリストを作成したいと思います。これは、文字列とまったく同じ名前になります。
apple = []
orange = []
banana = []
Pythonでそれを行うにはどうすればよいですか?
dict
これを行うには、 :を作成します。
fruits = {k:[] for k in names}
次に、それぞれにアクセスします(たとえば: fruits['apple']
)-別々の変数の道を進みたくない!
常にJon Clements の answerを使用してください。
globals()
グローバル名前空間をサポートするディクショナリを返します。この時点で、他のディクショナリと同様に扱うことができます。 これを行うべきではありません。 名前空間の汚染につながり、既存の変数を上書きする可能性があり、これに起因する問題のデバッグがより困難になります。
for name in names:
globals().setdefault(name, [])
apple.append('red')
print(apple) # prints ['red']
後で変数「apple」を参照するには、リストに「apple」が含まれていることを事前に知っておく必要があります。その時点で、変数を通常どおりに定義できます。したがって、これは実際には役に立ちません。ジョンの答えも辞書を生成することを考えると、を使用する利点はありませんglobals
。