python 实现类似数据库的left join查询

类似数据库的leftjoin查询[root@ecmsmytest]#cata.txt111aaa222bbb333cccc444ddd[root@ecmsmytest]#... 类似数据库的left join查询

[root@ecms mytest]# cat a.txt
111 aaa
222 bbb
333 cccc
444 ddd
[root@ecms mytest]# cat b.txt
111 123 456
2 abc cbd
444 rts 786

输出结果:
111,aaa,123,456
444,ddd,rts,786

PYTHON 如何实现??
展开
 我来答
肖昀
2014-12-09 · TA获得超过498个赞
知道小有建树答主
回答量:419
采纳率:0%
帮助的人:111万
展开全部
如果不借助第三方库支持的话,似乎只有遍历2个txt了
新建一个字典 xDict={}
遍历a.txt 将第一列作为key,后面作为value
然后再遍历b.txt,同样第一列作为key,如果key在xDict中,则把后面的只加上去
chaoningwang
2014-12-09 · TA获得超过682个赞
知道小有建树答主
回答量:806
采纳率:83%
帮助的人:892万
展开全部
给个思路吧,不写代码了,
1.首先选择出首列相同的行,我之前写过小代码给你借鉴:
file = open('a.txt')
a = []
b = []
c = []
for line in file:
a.append(line)
b.append([line.split()[0],0])
c.append(line.split()[0])
print a
print b
for n in c:
for i in range(0,len(b)):
if n == b[i][0]:
b[i][1]=b[i][1]+1
print b
for j in range(0,len(b)):
if b[j][1]==2:
print a[j]
file.close

2.然后合并向同行,然后用set去重,
3.输出,OK
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式