手動で入力せずに多くの空のリストを作成するにはどうすればよいですか
list1=[] , list2=[], list3=[]
そのような空のリストを 'n'個にするforループはありますか?
リストの理解はここで最も簡単です:
>>> n = 5
>>> lists = [[] for _ in range(n)]
>>> lists
[[], [], [], [], []]
次のようなtrapに陥らないように注意してください。
>>> lists = [[]] * 5
>>> lists
[[], [], [], [], []]
>>> lists[0].append(1)
>>> lists
[[1], [1], [1], [1], [1]]
「リストのリスト」なしで異なるリストを作成したい場合は、これを試してください:
list1, list2, list3, list4 = ([] for i in range(4))
これはどう。
def mklist(n):
for _ in range(n):
yield []
使用法:
list(mklist(10))
[[], [], [], [], [], [], [], [], [], []]
a, b, c = mklist(3) # a=[]; b=[]; c=[]
2年遅れてすみませんが、まだ他の人を助けることができるかもしれません。
以下のコードは、それ自体を動的に「作成」します。反復ごとに、次のコマンドが発行されます。
リスト数値 = []
numberは、ループ内のiの値です。
x = 3 # amount of lists you want to create
for i in range(1, x+1):
command = "" # this line is here to clear out the previous command
command = "list" + str(i) + " = []"
exec(command)
この特定のコードの結果は3つの変数です。list1、list2、list3が作成され、それぞれに空のリストが割り当てられます。
これを一般化して、実際に必要なものを作成できます。変数とグローバル変数がどのように機能するかにより、私が知る限り、これを関数に入れることはできません。
name = "my_var" # This has to be a string, variables like my_var1, my_var2 will be created.
value = "[]" # This also has to be a string, even when you want to assign integers! When you want to assign a string "3", you'd do this: value = "'3'"
amount = 5 # This must be an integer. This many variables will be created (my_var1, my_var2 ... my_var5).
for i in range(1, amount+1):
command_variable = ""
command_variable = name + str(i) + " = " + value
exec(command_variable)
お役に立てば幸いです!
リストのリストのリストを追加することもできます...このように。エラーは返されません。しかし、私はそれが何のために使われているのか分かりませんでした。
n = 5
>>> lists = [[[]]] for _ in range(n)]
>>> lists
[[[[]]], [[[]]], [[[]]], [[[]]], [[[]]]]
ここでの多くの答えは、名前が割り当てられていない(より大きなリストの要素としての)多くのリストを取得することがわかります。これは必ずしも必要なものではないかもしれません。 Tupleを使用して、それぞれ異なる名前/値を持つ複数の空のリストを作成することができます。
a,b,c = ([],[],[])
この構造を変更すると、あなたが望むものが得られるはずです。