Python分割和重新组合列表字符串

2024-04-28 08:03:49 发布

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

我的Python列表中有一对元素作为子列表。完整列表如下所示:

L = [
      ["ImoduleB.pinN_in", "ImoduleC.pinO_out"], 
      ["ImoduleA.pinM_in", "ImoduleB.pinN_out"],
      ["ImoduleC.pinO_in", "ImoduleD.pinP_out"]
]

其中ImoduleA, ImoduleB, ImoduleC, ImoduleD是我的实例名,pinM_*, pinN_*, pinO_*, pinP_*是管脚名。你知道吗

我有兴趣隔离实例名称以供进一步处理,并计划在处理完成后将pin名称附加回它们的实例。你知道吗

L_instances = [
      ["ImoduleB", "ImoduleC"], 
      ["ImoduleA", "ImoduleB"],
      ["ImoduleC", "ImoduleD"]
]

L_pins = [
      ["pinN_in", "pinO_out"], 
      ["pinM_in", "pinN_out"],
      ["pinO_in", "pinP_out"]
]

一件重要的事情是。。。L_instances中的元素将在处理过程中重新排序。一个简单的例子是:

L_instances_processed = [
      ["ImoduleA", "ImoduleB"], # re-ordered
      ["ImoduleB", "ImoduleC"], # re-ordered
      ["ImoduleC", "ImoduleD"]
]  

问题是:如何将重新排序的实例及其pin重新组合到原始字符串中?我应该将子列表存储到字典中吗?针上没有处理。你知道吗

 L_combined = [
      ["ImoduleA.pinM_in", "ImoduleB.pinN_out"], 
      ["ImoduleB.pinN_in", "ImoduleC.pinO_out"],
      ["ImoduleC.pinO_in", "ImoduleD.pinP_out"]
]

如果有更好的方法来拆分和重新组合它们,请随意加入您的解决方案。你知道吗


Tags: instances实例in名称元素列表pinnout
2条回答
L = [
      ["ImoduleB.pinN_in", "ImoduleC.pinO_out"], 
      ["ImoduleA.pinM_in", "ImoduleB.pinN_out"],
      ["ImoduleC.pinO_in", "ImoduleD.pinP_out"]
] 
# split every item 
L_instances = [[i.split('.')[0] for i in x ]for x in L]
# [['ImoduleB', 'ImoduleC'], ['ImoduleA', 'ImoduleB'], ['ImoduleC', 'ImoduleD']]
L_pins= [[i.split('.')[1] for i in x ]for x in L]
# [['pinN_in', 'pinO_out'], ['pinM_in', 'pinN_out'], ['pinO_in', 'pinP_out']]

你可以试试字典:

L = [
  ["ImoduleB.pinN_in", "ImoduleC.pinO_out"],
  ["ImoduleA.pinM_in", "ImoduleB.pinN_out"],
  ["ImoduleC.pinO_in", "ImoduleD.pinP_out"]
]

k = []
for i in L:
    d = {}
    for j in i:
        s = j.split(".")
        d.update({s[0]:s[1]})
    k.append(d)
print(k)

输出:

[{'ImoduleB': 'pinN_in', 'ImoduleC': 'pinO_out'}, 
 {'ImoduleA': 'pinM_in', 'ImoduleB': 'pinN_out'}, 
 {'ImoduleC': 'pinO_in', 'ImoduleD': 'pinP_out'}]

相关问题 更多 >