gpt4 book ai didi

python - 如何在两个具有相同元素的 Python 列表上执行 MYSQL INNER JOIN?

转载 作者:行者123 更新时间:2023-11-29 02:50:53 27 4
gpt4 key购买 nike

我有两个 python3 数组(列表),类似于 MYSQL 中的两列。他们的一些第一个“列”元素是相同的:

list1 = [ 

['a', 'apple'],
['b', 'banana'],
['m', 'mango']

]

list2 = [

['b', 'buffalo'],
['zzzz', 'zzzzegemot, a sleeping behemoth'],
['m', 'mongoose']

]

请注意,在两个列表中,第一个“b”和第三个“m”元素是相同的。

如何在 list1[0] 和 list2[0] 上执行类似于 MYSQL INNER JOIN 的操作,并获得第三个列中类似条目的组合:

list3 = [

['banana', 'buffalo']
['mango', 'mongoose']

]

我希望我表达清楚,以便您理解我。

最佳答案

由于您有两个列表,内部连接应该处理重复的键。

m1 = reduce(lambda c,x: c[x[0]].append(x[1]) or c,list1,defaultdict(list))
list(chain(*(product(m1[e[0]],[e[1]]) for e in list2)))

# added entries ['b', 'bongo'] and ['b', 'bull'] into list1 and list2
>>> [('banana', 'buffalo'),
('bongo', 'buffalo'),
('banana', 'bull'),
('bongo', 'bull'),
('mango', 'mongoose')]

关于python - 如何在两个具有相同元素的 Python 列表上执行 MYSQL INNER JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086518/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com