操纵列表Python

2024-05-16 20:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

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=>;让我们检查列表C和E中与列表A和B相同行的元素=>;'2'是列表C的对应元素,'2'是列表E的对应元素=>;matches=>;在Excel中打开新工作表=>;在A和B之间写入公共元素(在我们的示例中是Anne)在Excel中=>;在col=2,row=1中写入C和E之间的公共元素(在我们的示例中是2)=>;在col=3,row=1中写入与列表B和列表F('Dan')中的E(第7行)相同的行中的元素。你知道吗

目前,我只想在屏幕上显示,但主要目标应该是将这些数据插入Excel,我希望脚本更具可伸缩性(不要仅适用于本例,因为我的每个列表至少有10k个元素)。你知道吗

你知道密码有什么问题吗?你知道吗

非常感谢


Tags: nameingt元素列表indexifmatch
1条回答
网友
1楼 · 发布于 2024-05-16 20:23:41

可能您的代码有不正确的缩进:

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])

相关问题 更多 >