1

Python スクリプトで名前付きリストのリストを作成する必要があります。

私がやりたいことは、リスト内の文字列を取り、各文字列に名前を付けたリストを作成する mklist メソッドを作成することです。だから、ここから:

a = "area"

for i in range(1, 37):
    x = str(a) + str("%02d" % (i,))
    ' '.join(x.split())

私は以下を取得したい:

area01 = []
area02 = []
area03 = []
area04 = []
area05 = []
area06 = []
area07 = []
area08 = []
area09 = []
area10 = []
area11 = []
area12 = []
area13 = []
area14 = []
area15 = []
area16 = []
area17 = []
area18 = []
area19 = []
area20 = []
area21 = []
area22 = []
area23 = []
area24 = []
area25 = []
area26 = []
area27 = []
area28 = []
area29 = []
area30 = []
area31 = []
area32 = []
area33 = []
area34 = []
area35 = []
area36 = []   

何かアドバイス?私はそれを得ることができないようです。ありがとう!え

4

3 に答える 3

5

これは、リストのリストのいずれかを呼び出します。

area = [[] for i in range(37)]

またはリストのdict:

area = {i: [] for i in range(1, 37)}        # Python 2.7+
area = dict((i, []) for i in range(1, 37))  # Python 2.6 or earlier

次に、次の方法で各アイテムにアクセスできます。

area[1]
area[2]
...
area[36]
于 2013-08-21T16:07:32.847 に答える
1

この質問を参照してください。

a = "area"
for i in range(1, 37):
   x = str(a) + str("%02d" % (i,))
   locals()[x] = []

または、リストをグローバルにしたい場合は、globals() を使用します。

これにより、空のリスト変数 area01 から area36 が得られます。

ただし、それができるからといって、そうすべきであるとは限らないことに注意してください。より良い/より読みやすい解決策は次のとおりです。

area = [[] for i in range(37)]

(ジョンのソリューションを参照)

于 2013-08-21T16:10:40.537 に答える
-1

何かのようなもの:

a = "area"
x = [ "%s%02d = []" % (a, i) for i in range(1,37) ]
print('\n'.join(x))

リストを現在の Python セッションで定義したい場合は、最後の行を

for i in range(0, 36):
    exec(x[i])

そして、チェックしてください

print area01
print area35

ただし、これはお勧めできません。

于 2013-08-21T16:10:53.643 に答える