8

ファイル名のリストを順番に取得しようとしています。何かのようなもの

files-1-loop-21
files-1-loop-22
files-1-loop-23
files-1-loop-24
files-2-loop-21
files-2-loop-22
files-2-loop-23
.
.
.
and so on

テストに関しては、私は以下のようにPythonコードを書きました:

コードsample_1:

for md in range(1,5):
   for pico in range(21,25):
      print md, pico

それは私に次のような数のペアを与えます:

  `1 21
   1 22
   1 23
   1 24
   2 21
   2 22
   2 23
   2 24
   3 21
   3 22
   3 23
   3 24
   4 21
   4 22
   4 23
   4 24

`

私が使用する場合:

コードsample_2:

 for md in range(1,5):
   for pico in range(21,25):
  print "file-md-loop-pico"

私は得る

  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico
  files-md-loop-pico

Pythonで(この投稿の冒頭に示されているように)必要なファイルリストを取得するには、(コードsample_2)をどのように変更する必要がありますか?

前もって感謝します。

よろしく

4

7 に答える 7

17

これを試して:

for md in range(1,5):
   for pico in range(21,25):
      print "file-{0}-loop-{1}".format(md, pico)

または:

from itertools import product
for md, pico in product(range(1,5), range(21,25)):
    print "file-{0}-loop-{1}".format(md, pico)
于 2013-01-17T12:29:33.423 に答える
2

文字列フォーマットを使用します。

print 'file-{0}-loop-{1}'.format(md, pico)
于 2013-01-17T12:29:18.777 に答える
2

1)Pythonスコープはインデントによって決定されます。内部コードは適切にインデントする必要があります。

for md in range(1,5):
    for pico in range(21,25):
        print "file-md-loop-pico"

2)変数とを"file-md-loop-pico"挿入するのではなく、文字列リテラルを使用しています。文字列を正しくフォーマットするには、次を使用します。mdpico

for md in range(1,5):
    for pico in range(21,25):
        print "file-{0}-loop-{1}".format(md, pico)
于 2013-01-17T12:32:32.607 に答える
2

一発ギャグ:

print '\n'.join([('files-%d-loop_%d' %(i, j)) for i in xrange(1,5) for j in xrange(21,25)])
于 2013-12-04T06:13:01.920 に答える
1

{}で囲まれた引数を使用して、他の回答で提供されている解決策は、これを行うための正しい現代的な方法です

print'file-{0}-loop-{1}'.format{md,poco)

あなたがおそらく見るであろうこれをするための古い方法があります、そしてあなたがcまたはc++sprintfに精通しているならそれはより理にかなっているかもしれません

print'file-%d-loop-%d'%(md,poco)

ドキュメント:http ://docs.python.org/2/tutorial/inputoutput.html

于 2013-01-17T12:40:52.917 に答える
0

これにより、問題が簡単に解決されます。

コード:

for md in range(1,5):
       for pico in range(21,25):

            print "file-%d-loop-%d"%(md,pico)

出力:

file-1-loop-21
file-1-loop-22
file-1-loop-23
file-1-loop-24
file-2-loop-21
file-2-loop-22
file-2-loop-23
file-2-loop-24
file-3-loop-21
file-3-loop-22
file-3-loop-23
file-3-loop-24
file-4-loop-21
file-4-loop-22
file-4-loop-23
file-4-loop-24
于 2014-11-19T11:04:05.530 に答える
0
for md in range(1,5,1):
  for pico in range(21,25,1):
     print ("file-" + str(md) +"-loop-" + str(pico) )
于 2018-12-22T06:24:23.317 に答える