操作列出Python

时间:2018-01-04 12:45:35

标签: python list-manipulation

我有以下代码:

import sys

A=['Anne','Romeo','Flynn','Mickey']
B=['Bravo','Whiskey','Anne','Flynn','Joe', 'Marianne']
C=['2', 'Joe', 'Marshall','2']
D=['Connor', '2', 'Robert', 'Marshall', 'George', 'Franklin']
E=['2', 'Flynn', '2', 'Richard', 'Phillip']
F=['Rex', 'Fer', 'Dan', 'Daniel', 'Didi', 'Didier']

for name in A:
        if name in B:
                match=name
                a_index = A.index(match)
                c_element = C[a_index]
                b_index = B.index(match)
                e_element = E[b_index]
                f_element = F[b_index]
                if c_element == e_element:
                       print([match, c_element, f_element])

但是我收到以下错误:

e_element = E[b_index] 
IndexError: list index out of range

我的输出应该是这样的:

Anne     2       Dan

算法应该是这样的:

A和B之间的第一个共同元素是Anne => matches =>让我们从列表A和B =>的相同行中检查列表C和E中的元素。 '2'是列表C的对应物,'2'是列表E =>的对应物。 matches =>在Excel中打开一个新工作表=>在Excel =>中写入A和B之间的公共元素(在我们的例子中是Anne)在col = 2,row = 1 =>中写入C和E之间的公共元素(在我们的例子中是2)在col = 3,row = 1的列表F('Dan')中写入与列表B和E(第7行)相同的行中的元素。

目前,我想在屏幕上显示,但主要目标应该是将这些数据插入到Excel中,我希望脚本更具可扩展性(不适用于此示例,因为我有每个列表至少有10k个元素)。

知道代码中有什么问题吗?

非常感谢,

1 个答案:

答案 0 :(得分:2)

也许你的代码有不正确的缩进:

stopPropagation