繁体   English   中英

从列表中提取嵌套循环

[英]Nested loops pulling from lists

我需要制作一个嵌套循环,根据用户输入的行数和列数打印座位列表(例如1a3c ),例如打印2 3 (行列)的输入

1a 1b 1c
2a 2b 2c

列号应替换为字符。 我知道有一种方法可以通过更改循环中的字符来做到这一点,但是我想从列表中获取列字符。

这是我当前的代码:

num_rows = int(input('rows'))
num_cols = int(input('cols'))


a = list('abcdefghijklmnopqrstuvwxyz')
rows = 1
cols = 0
for rows in range(num_rows):
    for cols in range(num_cols):
        cols = a[num_cols]
        print('{}{}'.format(rows, cols), end=' ')
        num_cols += 1
    rows += 1

print()

对于2 3的输入,此代码生成

0d 0e 0f 1g 1h 1i 1j 1k 1l 

而不是上面给出的预期输出。

评论太长了。 您的代码有一些问题。

  • 没有必要初始化rowscols ,因为这两个值都将被for语句覆盖。
  • 列字母应该是a[cols] ,而不是a[num_cols]因为这会给你一个从最后一列开始的值
  • 没有理由在循环中增加num_cols ,因为它被用作循环范围的结束,改变它对循环没有影响
  • 没有理由增加rows ,这是通过for语句实现的
  • rows循环的范围应该是(1, num_rows+1)行号从 1 开始
  • 您需要rows循环中使用print()来为每一行开始一个新行

把所有这些放在一起,你得到:

num_rows = int(input('rows'))
num_cols = int(input('cols'))

a = list('abcdefghijklmnopqrstuvwxyz')

for rows in range(1, num_rows+1):
    for cols in range(num_cols):
        print('{}{}'.format(rows, a[cols]), end=' ')
    print()

对于num_rows = 3num_cols = 4输出:

1a 1b 1c 1d 
2a 2b 2c 2d 
3a 3b 3c 3d 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM