Python3将可变数量的列表合并为一个列表

2024-06-10 08:04:00 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码会导致(行)列表数量可变:

BoM = sock.execute(dbname,uid,pwd,'mrp.bom.line','search',[('bom_id','=',Pname)])
for BoMs in BoM:
    RAWnames = sock.execute(dbname,uid,pwd,'mrp.bom.line','read',BoMs)
    RAWnames = RAWnames[0]
    LdM = RAWnames['product_id'][1], RAWnames['product_qty'], RAWnames['x_studio_custo_unitrio']
    BoM = list(LdM)
    print (BoM)

像这个:

['Material 1', 1.0, 1.0]
['Material 2', 2.0, 2.0]
['Material 3', 3.0, 3.0]
['Material 2', 2.0, 2.0]
['Material 3', 3.0, 3.0]
['Material 4', 4.0, 4.0]

我需要将这些列表合并为一个列表,因此结果如下:

[['Material 1', 1.0, 1.0],
['Material 2', 2.0, 2.0],
['Material 3', 3.0, 3.0],
['Material 2', 2.0, 2.0],
['Material 3', 3.0, 3.0],
['Material 4', 4.0, 4.0]]

我怎样才能做到这一点?这可能吗? 不知何故,我一直认为这应该很容易,但我不能全神贯注


Tags: id列表executeuidmrppwdlinebom
3条回答

您可以定义一个列表并将每条记录附加到其中

records = []

BoM = sock.execute(dbname,uid,pwd,'mrp.bom.line','search',[('bom_id','=',Pname)])
for BoMs in BoM:
    RAWnames = sock.execute(dbname,uid,pwd,'mrp.bom.line','read',BoMs)
    RAWnames = RAWnames[0]
    LdM = RAWnames['product_id'][1], RAWnames['product_qty'], RAWnames['x_studio_custo_unitrio']
    BoM = list(LdM)

    records.append(BoM)

print(records)
list1 = ['Material 1', 1.0, 1.0]
list2 = ['Material 2', 2.0, 2.0]
list3 = ['Material 3', 3.0, 3.0]
list4 = ['Material 2', 2.0, 2.0]
list5 = ['Material 3', 3.0, 3.0]
list6 = ['Material 4', 4.0, 4.0]

mergedList = []

mergedList.append(list1)
mergedList.append(list2)
mergedList.append(list3)
mergedList.append(list4)
mergedList.append(list5)
mergedList.append(list6)

print(mergedList)

试试这个:

mergedList = [list1, list2, list2, list3, list4, list5, list6]

相关问题 更多 >