web-dev-qa-db-ja.com

作成して初期化python list

私はPythonを使用してリストを作成することに固執しています。

File00.txt、file01.txt、...、file99.txtなどのm x nファイルを作成したいのですが、作成しようとするとエラーが発生します。手伝わせてください。

filename = []

for i in range(0, sm):
    filename.append('') 
    for j in range(0, sn):
        filename[i].append('')

ありがとう。

4
user1399394

あなたはこのようなことを試すことができます:

filenames = []

for i in range(0, sm):
    row = [] 
    for j in range(0, sn):
        row.append('') # I assume you want to do something more here
    filenames.append(row)
4
Mark Byers

iを0に設定した後、filename [0]として空の文字列を追加します。行の2番目のforループ

    filename[i].append('')

これはあなたが実際に電話することを意味します

    ''.append('')

したがって、エラーは次のようになります。

    AttributeError: 'str' object has no attribute 'append'

ヒント:質問をするときはエラーテキストを投稿し、エラーテキストがエラーについて何を言っているかを理解してください。

0
Schuh
filenames = []
for i in range(100):
    filenames.append((str(i) if len(str(i)) > 1 else str(0) + str(i)) + ".txt")

最後に、filenamesリストにfile00.txt、file01.txt、...、およびfile99.txtが含まれます。

filenames_mxn = []
for i in range(m):
    filenames_i = []
    for j in range(n):
        filenames_i.append(filenames[i*n + j])
    filenames_mxn.append(filenames_i)

これで、ファイルがm x nマトリックスに保存されました。

0
user278064

同じ種類のアイテムの多次元リストは少し意味がありません。シンプルなプレーンリストを試してみてください。作成と使用が簡単です。

>>> filenames = ['file' + i + j + '.txt' for i in '0123456789' for j in '0123456789']
>>> filenames
['file00.txt', 'file01.txt', 'file02.txt', ..skipped.. 'file97.txt', 'file98.txt', 'file99.txt']
0
lenik