制作一个字典,其中值基于正则表达式 - Python

时间:2013-06-07 20:14:06

标签: python regex

说我有一本字典x = {'123A......': None, '123AA.....': None, '123AB.....': None}

假设我还有一个列表y = ['123AC.....', '123ABB....', '123ABC....']

我想要的是以下结果:

{'123A......': [123AC....], '123AA.....': ['123AC.....'], '123AB.....': ['123ABB....']}

我认为以下内容可行,

for item in x:
    x[item] = re.findall(r'123[A-Z\.]{7}', ''.join(y))

或类似的东西。帮助赞赏。

1 个答案:

答案 0 :(得分:2)

你可能想要这样的东西

for item in xrange(len(x)):
      x[x.keys()[item]] = re.findall(r'123[A-Z\.]{7}', ''.join(y[item]))

这样,x和y都在递增......

但我非常确定使用zip

可以更轻松地完成此操作

如果你有:

x = ['123A......', '123AA......', '123AB......'] 
y = ['123AC.....', '123ABB....', '123ABC....']

dict(zip(x,y))

将输出

{'123AB......': '123ABC....', '123A......': '123AC.....', '123AA......': '123ABB....'}

我认为这对你很有用,而且它更容易使用,因为它会保留列表的顺序(列表项x [0]将与y [0]配对)并且如果你只是输入字典的键......奇怪的订单发生了.....用dict(zip(listA,listB))玩,你会看到我在说什么