将列表中的两个元素合并到嵌套列表中

2024-09-30 18:32:35 发布

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

我试图将列表中的两个元素组合在一起,以在原始列表中形成嵌套列表。我被卡住了。我可以遍历列表并获取特定的元素,但我不确定如何在原始列表中使用这些元素创建嵌套列表

这是原始列表

[
  {'LIN02': 'GS', 'LIN04': 'MF', 'LIN03': 'BOSEF2', 'LIN06': 'ST', 'LIN05': 'BOSTIK', 'LIN07': 'BOSEF2', 'id': 'LIN'}, 
  {'PID02': 'TRN', 'PID01': 'F', 'PID05': 'EFA+ 28 OZ TUBE ADHESIVE', 'id': 'PID'}, 
  {'PID02': 'MAC', 'PID01': 'F', 'PID05': 'INSADH', 'id': 'PID'},
  {'MEA04': 'EA', 'MEA03': '1.000', 'MEA02': 'SU', 'id': 'MEA'}
]

我希望它能像这样输出

[
  {'LIN02': 'GS', 'LIN04': 'MF', 'LIN03': 'BOSEF2', 'LIN06': 'ST', 'LIN05': 'BOSTIK', 'LIN07': 'BOSEF2', 'id': 'LIN'}, 
  [
    {'PID02': 'TRN', 'PID01': 'F', 'PID05': 'EFA+ 28 OZ TUBE ADHESIVE', 'id': 'PID'}, 
    {'PID02': 'MAC', 'PID01': 'F', 'PID05': 'INSADH', 'id': 'PID'}
  ],
  {'MEA04': 'EA', 'MEA03': '1.000', 'MEA02': 'SU', 'id': 'MEA'}
]

这就是我目前所拥有的

loop_2000 = ['LIN02': 'GS', 'LIN04': 'MF', 'LIN03': 'BOSEF2', 'LIN06': 'ST', 'LIN05': 'BOSTIK', 'LIN07': 'BOSEF2', 'id': 'LIN'}, {'PID02': 'TRN', 'PID01': 'F', 'PID05': 'EFA+ 28 OZ TUBE ADHESIVE', 'id': 'PID'}, {'PID02': 'MAC', 'PID01': 'F', 'PID05': 'INSADH', 'id': 'PID'}, {'MEA04': 'EA', 'MEA03': '1.000', 'MEA02': 'SU', 'id': 'MEA'}]
for n in enumerate(loop_2000):
for line in enumerate(n[1]):
    if line[1]["id"] == "PID":
        print(line)

不确定这是否是解决这个问题的最有效的方法,但我找到了解决办法

pid_list = []
pid_index = []
for line in enumerate(loop_2000):
    if line[1]["id"] == "PID":
        pid_index.append(line[0])
        pid_list.append(line[1])
loop_2000.insert(line[0], pid_list)
del loop_2000[pid_index[0]: pid_index[0] + 2]

Tags: loopgsid元素列表indexlinepid