猿问

Python 用列表中特定索引处的类包装并返回整个列表

我有一个元组列表。我想index=1用一个名为的类包装每个元组的值,Paragraph()然后返回整个列表。


description_index = 1

line_data = [

    ('1', 'PRODUCT 1<br/>new line', '1.00 pc', '1.00', '2,000.00', '2,000.00'), 

    ('100000', 'PRODUCT 2', '1.00 pc', '20.00', '5.00', '100.00')

]

有没有更快/更有效的方法来实现这一目标?在此示例中,它不会花费太长时间,但如果长度增加到 1000 并且description_index=100.


def wrap_with_paragraph(line_data):

    new_line_data = []

    for line in line_data:

        new_line_data.append([

            line[0],

            Paragraph(line[1]),

            line[2],

            line[3],

            line[5],

        ])

    return new_line_data

我也尝试过使用列表理解,但我不确定它会更快。


def wrap_with_paragraph(line_data):

    return [

        [Paragraph(x) if i == 1 else x for i, x in enumerate(l)]

        for l in line_data

    ]


慕勒3428872
浏览 81回答 1
1回答

慕容3067478

由于元组是不可变的(你不能l[i] = P(l[i])),你可以使用元组切片:def wrap_with_paragraph(line_data, i):&nbsp; &nbsp; return line_data[:i] + (Paragraph(line_data[i]),) + line_data[i + 1:]a[i])
随时随地看视频慕课网APP

相关分类

Python
我要回答