我正在尝试使函数返回此:

42334
44423
21142
14221


由此:

polje = [[1, 2, 4, 4], [4, 1, 4, 2], [2, 1, 4, 3], [2, 4, 2, 3], [1, 2, 3, 4]]


该功能仅遍历列表并从最后一个开始打印其元素。我已经能够通过打印得到正确的结果,但是我正在努力使之能够使函数简单地返回结果。我该怎么做?我已经尝试过生成器,用于循环的单行等,但是互联网上的注释并不丰富,并且通常以复杂的方式编写...

这是到目前为止我得到的代码:

def izpisi(polje):
    i = len(polje[0]) - 1
    while i >= 0:
        for e in polje:
            print(e[i], end="")
        i -= 1
        print("\n")
    return 0

最佳答案

def izpisi(polje):
    return '\n'.join([ # inserts '\n' between the lines
        ''.join(map(str, sublst)) # converts list to string of numbers
        for sublst in zip(*polje) # zip(*...) transposes your matrix
    ][::-1]) # [::-1] reverses the list

polje = [[1, 2, 4, 4], [4, 1, 4, 2], [2, 1, 4, 3], [2, 4, 2, 3], [1, 2, 3, 4]]
print izpisi(polje)

关于python - 在Python的while循环内返回for循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27666120/

10-11 20:53