Python:与标准相结合

时间:2017-05-05 19:54:44

标签: python combinations itertools

我有以下组合列表

a = [(1,10),(2,8),(300,28),(413,212)]

b = [(8,28),(8,15),(10,21),(28,34),(413,12)]

我想从这两个列表中创建一个新组合列表,该列表遵循以下标准:

A 即可。 列出a和列表b有共同的元素

  • 列表中元组的第二个元素等于第一个元素  列表中的元组b。
  • 列表a和列表b的组合应该形成一个新的组合:

    d = [(1,10,21),(2,8,28),(2,8,15),(300,28,34)]

    • 两个列表中不符合条件的所有其他元组都会被忽略。

问题

  1. 我可以使用itertools进行基于标准的组合吗?

  2. 使用/不使用模块解决此问题最优雅的方法是什么?

  3. 如何在Excel工作表中显示输出,以将列表d中元组的每个元素显示到单独的列,例如:

    d = [(1,10,21),(2,8,28),(2,8,15),(300,28,34)] 以excel显示:

  4. Col A = [1,2,2,300]

    Col B = [10,8,8,28]

    Col C = [21,28,15,34]

1 个答案:

答案 0 :(得分:0)

pandas就像excel的魅力一样。

以下是代码:

a = [(1,10),(2,8),(300,28),(413,212)]

b = [(8,28), (8,15),(10,21),(28,34),(413,12)]

c = [(x, y, t) for x, y in a for z, t in b if y == z]

import pandas as pd

df = pd.DataFrame(c)
df.to_excel('MyFile.xlsx', header=False, index=False)