按顺序向每列添加值

时间:2015-12-08 08:28:50

标签: python

我是python中的新手程序员,想知道我是否能得到一些帮助。我将在下面显示的代码根据用户输入的#行和#列打印出一个简单的数组。数组本身充满了下划线('_'):

new_list = []
undersc = '_'
for i in range(1, rows + 1):
    new = []
    for j in range(1, columns + 1):
        new.append(undersc)
    new_list.append(new)

for c in range(len(new_list[0])):
    print()
for r in range(len(new_list)):
    for c in range(len(new_list[0])):
        array = print((new_list[r][c]), end=" ")
    print()
return array

控制台输出以下内容:

_  _  _  _  _

_  _  _  _  _

_  _  _  _  _

我现在需要获得的输出是:

Z _ _ _ _

Z Z _ _ _

Z Z Z _ _

基本上我看到当你向下移动时,每一列都是顺序填充的,然而,我迷失了如何获得上面的代码来执行此操作。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

更改此行:

new.append(undersc)

到此:

new.append(undersc if j > i else 'Z')

答案 1 :(得分:0)

建立清单

>>> rows = 3
>>> columns = 5
>>> res = [['Z'] * pos + ['_'] * (columns - pos) for pos in range(1, rows + 1)]
>>> res
 [['Z', '_', '_', '_', '_'],
  ['Z', 'Z', '_', '_', '_'],
  ['Z', 'Z', 'Z', '_', '_']]

>>> for row in res:
        print(''.join(row))
Z _ _ _ _
Z Z _ _ _
Z Z Z _ _

使用您的列表new_list

for pos, row in enumerate(new_list, 1):
    print(' '.join(['Z'] * pos), ' '.join(row[pos:]))

打印:

Z _ _ _ _
Z Z _ _ _
Z Z Z _ _