Python:如何在不平衡的多个列表中获取第二列


lists=may['barrier']
lists
def column(matrix, i):
    return [row[i] for row in matrix]
column(lists,0)
barr_col=column(lists,0)
barr_col

然后它给出第一列数据。

lists=may['barrier']
lists
def column(matrix, i):
    return [row[i] for row in matrix]
column(lists,0)
barr_col=column(lists,1)
barr_col

然后有一个错误,因为列表不平衡。

我如何解决这个问题?

尝试像这样定义column

def column(matrix, i):
    return [row[i] if i < len(row) else None for row in matrix]

按照您当前定义它的方式,我希望每当我超过该迭代中row的长度时,它就会失败。 通过在列表理解中测试它来解决这个问题。

最新更新