我正在尝试根据字段组合两个列表(类似于执行内连接)
列表A:姓名,职位,员工ID
示例条目
1)Bob,Admin,32443
2)Jack,Security,5464
列表B:职位,任务
示例条目
1)管理员,检查系统文件
2)管理员,添加用户
3)管理员,删除用户
4)安全,执行审查
5)安全性,检查设置
我需要最终输出如下:
Bob,Admin,32443,检查系统文件
Bob,Admin,32443,添加用户
Bob,Admin,32443,删除用户
杰克,安全,5464,执行审查
杰克,安全,5464,检查设置
请指导我如何在简单循环中包含此类代码。我是Python的新手 非常感谢你提前
答案 0 :(得分:0)
选择笛卡尔积,然后跳过未通过连接条件的项目:
((name, position, emp_id, tasks)
for name, position, emp_id in ListA
for position2, tasks in ListB
if position == position2)
如果我们使用itertools
,我们可以稍微缩短一下以避免嵌套for
循环:
((name, position, emp_id, tasks)
for (name, position, emp_id), (position2, tasks)
in itertools.product(ListA, ListB)
if position == position2)
以上两个片段都是生成器表达式。如果需要真实列表,请将最外面的括号括号更改为方括号。