0

说我有一本字典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))

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

4

1 回答 1

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)),你会看到我在说什么

于 2013-06-07T20:23:25.707 回答