将字典转换为列表,省略一些数据

时间:2017-04-24 16:59:20

标签: python regex list dictionary

我正在尝试转换格式字典:

d = {'A1': ['a', 'a', 'A2 (A3-)', 'a'],
     'B1': ['b', 'b', 'B2 (B3-)', 'b'],
     'C1': ['c', 'c', 'C2 (C3)-', 'c']}

到表单列表:

e = [['A1', 'A2', 'A3'], ['B1', 'B2', 'B3'], ['C1', 'C2', 'C3']]

我知道我应该使用正则表达式来获取A2和A3数据,但是我无法将这些数据放在一起......

1 个答案:

答案 0 :(得分:2)

import re

regex = re.compile(r'(\w+) \((\w+)-.*')

# I suppose that you meant (C3-) and not (C3)-
d = {'A1': ['a', 'a', 'A2 (A3-)', 'a'], 'B1': ['b', 'b', 'B2 (B3-)', 'b'], 'C1': ['c', 'c', 'C2 (C3-)', 'c']}

out = []
for key, values_list in d.items():
    v2, v3 = regex.match(values_list[2]).groups()
    out.append([key, v2, v3])

print(out)
# [['C1', 'C2', 'C3'], ['B1', 'B2', 'B3'], ['A1', 'A2', 'A3']]

Note that the order is random, as your original dict is unordered.