Python 2.7 通过嵌套元组索引迭代二维元组

Python 2.7 通过嵌套元组索引迭代二维元组,python-2.7,Python 2.7,重写以下内容的好方法是什么?其思想是能够为嵌套列表的不同索引决定不同的操作 考虑嵌套列表只能是二维的,但顶部列表和嵌套列表都可以有任意长度 resulttable = '' list2d = [[1,2][3,4]] for row in list2d: newrow=u'<tr>' for idx in range(len(row)):if idx=0 .... if idx==0: newrow=newrow+u'<t

重写以下内容的好方法是什么?其思想是能够为嵌套列表的不同索引决定不同的操作

考虑嵌套列表只能是二维的,但顶部列表和嵌套列表都可以有任意长度

resulttable = ''
list2d = [[1,2][3,4]]
for row in list2d:
    newrow=u'<tr>'
    for idx in range(len(row)):if idx=0 ....
        if idx==0:
            newrow=newrow+u'<td align="left">'+unicode(row[idx])+u'</td>'
        else:
            newrow=newrow+u'<td align="right">'+unicode(row[idx])+u'</td>'
    resulttable+=newrow + '</tr>' 
resultable=''
list2d=[[1,2][3,4]]
对于list2d中的行:
纽罗=u“
对于范围内的idx(len(row)):如果idx=0。。。。
如果idx==0:
新行=新行+u'+unicode(行[idx])+u'
其他:
新行=新行+u'+unicode(行[idx])+u'
可结果+=新行+“”

我建议您将代码拆分为更小的可测试函数。它可以看起来像这样:

def _cell2td(idx, cell):
    if idx == 0:
        return u'<td align="left">' + unicode(cell) + u'</td>'
    return u'<td align="right">' + unicode(cell) + u'</td>'

def _row2tr(row):
    tds = [_cell2td(idx, cell) for idx, cell in enumerate(row)]
    row_repr = u'<tr>' + u''.join(tds) + u'</tr>'
    return row_repr

list2d = [[1, 2], [3, 4]]
trs = map(_row2tr, list2d)
resulttable = ''.join(trs)
def_cell2td(idx,cell):
如果idx==0:
返回u'+unicode(单元格)+u''
返回u'+unicode(单元格)+u''
def_行2TR(行):
tds=[_cell2td(idx,cell)用于idx,枚举(行)中的单元格]
行报告=u''+u''。加入(tds)+u''
返回行报告
list2d=[[1,2],[3,4]]
trs=地图(第2TR行,第2D列)
resulttable=''.join(trs)

我建议您将代码拆分为更小的可测试函数。它可以看起来像这样:

def _cell2td(idx, cell):
    if idx == 0:
        return u'<td align="left">' + unicode(cell) + u'</td>'
    return u'<td align="right">' + unicode(cell) + u'</td>'

def _row2tr(row):
    tds = [_cell2td(idx, cell) for idx, cell in enumerate(row)]
    row_repr = u'<tr>' + u''.join(tds) + u'</tr>'
    return row_repr

list2d = [[1, 2], [3, 4]]
trs = map(_row2tr, list2d)
resulttable = ''.join(trs)
def_cell2td(idx,cell):
如果idx==0:
返回u'+unicode(单元格)+u''
返回u'+unicode(单元格)+u''
def_行2TR(行):
tds=[_cell2td(idx,cell)用于idx,枚举(行)中的单元格]
行报告=u''+u''。加入(tds)+u''
返回行报告
list2d=[[1,2],[3,4]]
trs=地图(第2TR行,第2D列)
resulttable=''.join(trs)

写作可能比阅读更有趣:

list2d = [[1,2],[3,4]]
resulttable= ""
for row in list2d:
    resulttable += "<tr>{}</tr>".format("".join([u'<td align="left">'+unicode(val)+u'</td>' if y == 0 else u'<td align="right">'+unicode(val)+u'</td>' for y, val in enumerate(row)]))
list2d=[[1,2],[3,4]]
resultable=“”
对于list2d中的行:
resulttable+=“{}”.format(“.join([u'+unicode(val)+u'',如果y==0,则为u'+unicode(val)+u'',对于y,枚举(行)中的val)])
一行:

resulttable = "".join(["<tr>%s</tr>" % "".join([u'<td align="left">%s</td>' % unicode(val) if y == 0 else u'<td align="right">%s</td>' % unicode(val) for y, val in enumerate(row)]) for row in list2d])
resulttable=“”.join([%s”%”。join([u'%s'%unicode(val)如果y==0,则为u'%s'%unicode(val)表示y,枚举(行)中的val表示list2d中的行)])

写作可能比阅读更有趣:

list2d = [[1,2],[3,4]]
resulttable= ""
for row in list2d:
    resulttable += "<tr>{}</tr>".format("".join([u'<td align="left">'+unicode(val)+u'</td>' if y == 0 else u'<td align="right">'+unicode(val)+u'</td>' for y, val in enumerate(row)]))
list2d=[[1,2],[3,4]]
resultable=“”
对于list2d中的行:
resulttable+=“{}”.format(“.join([u'+unicode(val)+u'',如果y==0,则为u'+unicode(val)+u'',对于y,枚举(行)中的val)])
一行:

resulttable = "".join(["<tr>%s</tr>" % "".join([u'<td align="left">%s</td>' % unicode(val) if y == 0 else u'<td align="right">%s</td>' % unicode(val) for y, val in enumerate(row)]) for row in list2d])
resulttable=“”.join([%s”%”。join([u'%s'%unicode(val)如果y==0,则为u'%s'%unicode(val)表示y,枚举(行)中的val表示list2d中的行)])