python中的double for循环

2024-04-19 09:31:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着把文件名按顺序列出来。有点像

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代码:

代码示例:

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

`

如果我使用:

代码示例:

 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中修改(代码示例2)以获得我想要的文件列表(如本文开头所示)?

提前谢谢。

问候


Tags: and代码inloop示例forso顺序
3条回答

使用字符串格式。

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

1)Python的作用域由indentation决定。您的内部代码必须正确缩进:

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

2)使用字符串文字"file-md-loop-pico",而不是插入变量mdpico。若要format your string correctly,请使用:

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

试试这个:

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)

相关问题 更多 >