通常、結果を Python の複数のリストに格納するために、ループの前に対応する空のリストを作成します。
A = []
B = []
c = []
D = []
E = []
F = []
for i in range(100):
# do some stuff
単一のコード行 (または少数) でリストを作成する方法はありますか?
通常、結果を Python の複数のリストに格納するために、ループの前に対応する空のリストを作成します。
A = []
B = []
c = []
D = []
E = []
F = []
for i in range(100):
# do some stuff
単一のコード行 (または少数) でリストを作成する方法はありますか?
リストが論理的に類似している場合 (100 の異なる変数はプログラマーにとって暴力であるため、そうであることを願っています)、リストの辞書を作成します。
list_names = ['a', 'b', 'c' ]
d = {name:[] for name in list_names}
これにより、辞書が作成されます。
d = {'a': [], 'b': [], 'c': []}
個々のリストにアクセスできる場所:
d['a'].append(...)
またはそれらすべてを一度に作業します。
for v in d.itervalues():
v.append(...)
個々のリストに対するさらなる利点は、dict 全体をメソッドに渡すことができることです。
オブジェクトを使用できます:
>>> from string import ascii_uppercase
>>> class MyLists(object):
def __init__(self):
for char in ascii_uppercase:
setattr(self, char, [])
>>> l = MyLists()
>>> l.A
[]
>>> l.B
[]
a, b, c, d, e, f = [], [], [], [], [], []
lists = ([] for _ in range(6))
lists[5].append(...)
また
A, B, C, D, E, F = ([] for _ in range(6))
またはdefaultdictで
d = defaultdict(list)
d['F'].append(...)