我的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_*
是引脚名称。
我有兴趣隔离实例名称以进行进一步处理,我计划在处理完成后将引脚名称附加到其实例上。
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"]
]
问题是:如何将重新排序的实例及其图钉重新组合到原始字符串中?我应该将子列表存储到词典中吗?引脚上没有任何处理。
L_combined = [
["ImoduleA.pinM_in", "ImoduleB.pinN_out"],
["ImoduleB.pinN_in", "ImoduleC.pinO_out"],
["ImoduleC.pinO_in", "ImoduleD.pinP_out"]
]
如果有更好的拆分和重组方法,请随时提出解决方案。
答案 0 :(得分:0)
您可以尝试字典:
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'}]
答案 1 :(得分:0)
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']]