41

手動で入力せずに多くの空のリストを作成するにはどうすればよいですか

list1=[] , list2=[], list3=[]

そのような空のリストを「n」個作成する for ループはありますか?

4

7 に答える 7

6

ここでの多くの回答は、名前が割り当てられていない多くのリストを取得することがわかります(より大きなリストの要素として)。これは必ずしも必要なものではないかもしれません。タプルを使用して、それぞれが異なる名前/値を持つ複数の空のリストを作成することができます。

a,b,c = ([],[],[])

この構造を変更すると、必要なものが得られるはずです。

于 2018-09-06T14:29:59.170 に答える
4

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)

この特定のコード片の結果として、list1、list2、list3 という 3 つの変数が作成され、それぞれに空のリストが割り当てられます。

これを一般化して、実際に必要なものを作成できます。変数とグローバル変数がどのように機能するかにより、私の知る限り、これを関数に入れることはできないことに注意してください。

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)

お役に立てば幸いです!

于 2015-11-09T16:32:49.873 に答える
4

これはどう。

def mklist(n):
    for _ in range(n):
        yield []

使用法:

list(mklist(10))
[[], [], [], [], [], [], [], [], [], []]

a, b, c = mklist(3) # a=[]; b=[]; c=[]
于 2012-11-22T22:42:30.020 に答える
1

リストのリストのリストのリストのリストを追加することもできます...このようにも。エラーは返されません。しかし、私はそれが何のためにあるのか分かりませんでした。

n = 5 
>>> lists = [[[]]] for _ in range(n)]
>>> lists
   [[[[]]], [[[]]], [[[]]], [[[]]], [[[]]]]
于 2015-07-03T16:02:23.103 に答える