Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于列合并两个列表_Python - Fatal编程技术网

Python 基于列合并两个列表

Python 基于列合并两个列表,python,Python,我试图基于一个类似于执行内部联接的字段合并两个列表 列表A:姓名、职位、员工ID 样本条目 1鲍勃,管理员,32443 杰克,保安,5464 清单B:职位、任务 样本条目 1管理员,检查系统文件 2管理员,添加用户 3管理员,删除用户 4.安全,执行审查 5安全,检查设置 我需要最终输出如下: 鲍勃,管理员,32443,检查系统文件 Bob,管理员,32443,添加用户 鲍勃,管理员,32443,删除用户 杰克,保安,5464,执行审查 杰克,保安,5464,检查设置 请指导我如何在简单循环中包

我试图基于一个类似于执行内部联接的字段合并两个列表

列表A:姓名、职位、员工ID

样本条目

1鲍勃,管理员,32443 杰克,保安,5464

清单B:职位、任务

样本条目

1管理员,检查系统文件 2管理员,添加用户 3管理员,删除用户 4.安全,执行审查 5安全,检查设置

我需要最终输出如下:

鲍勃,管理员,32443,检查系统文件 Bob,管理员,32443,添加用户 鲍勃,管理员,32443,删除用户 杰克,保安,5464,执行审查 杰克,保安,5464,检查设置

请指导我如何在简单循环中包含此类代码。我是Python新手
提前感谢您

使用笛卡尔积,然后跳过未满足连接条件的项目:

((name, position, emp_id, tasks)
for name, position, emp_id in ListA
for position2, tasks in ListB
if position == position2)
如果我们使用itertools,我们可以稍微缩短它,以避免嵌套for循环:


以上两个代码段都是生成器表达式。如果您想要一个真实的列表,请将最外面的一对括号改为方括号。

这些列表的准确程度如何?你是说字典吗?你试过用吗?彼得,它们不是字典。它们取自csv文件。在那之后做了一些操作。合并这些列表后,我需要将结果与另一个列表合并,然后最终复制到csv文件。@b4hand,不,我没有尝试熊猫。对于新手问题,我很抱歉。还在学习阶段!如何使用上述代码获取列表。ListC=name,position,emp_id,tasks for name,position,emp_id,position2,itertools.productListA中的tasks,如果position==position2,则ListB会给我一个语法错误。@GayathriGopalakrishnan:语法已修复。您需要使用方括号或将其传递给list来创建列表。
((name, position, emp_id, tasks)
for (name, position, emp_id), (position2, tasks)
in itertools.product(ListA, ListB)
if position == position2)