gpt4 book ai didi

python - 以编程方式对两个表进行自然连接

转载 作者:行者123 更新时间:2023-12-01 05:03:49 30 4
gpt4 key购买 nike

我有两个包含数据的表(实际上是列表的列表),我想以编程方式在两个表之间进行自然连接(没有 SQL - 只是在代码中)。

如果我只想加入索引[0]处的单个公共(public)列,我可以这样做:

for each row1 in table1:
for each row2 in tabl2:
if row1[0] == row2[0]: // then this needs to join
newRow = row1 + row2 // pseudo-code but essentially add the two rows together

首先 - 这有意义吗?

第二 - 这是一个自然连接(对最终结果不是 100% 自信)

第三 - 这是更好的方法吗?

最佳答案

  1. 是的,有道理

  2. 是的,如果索引[0]是唯一的公共(public)列,那么这是自然连接。但是,您应该像下面一样创建 newRow,这样索引就不会在行中重复:

    newRow = row1 + row2[1:]
  3. 当前时间复杂度为O(n^2)。如果使用哈希,则可以在 O(n) 时间复杂度内完成此操作,但在这种情况下,哈希会增加 O(n) 的空间复杂度

    hash = {}
    for idx, row1 in enumerate(table1):
    hash[row1[0]] = idx #save the index of row by the key value

    for row2 in table2:
    if hash.has_key(row2[0])
    newRow = table1[hash[row2[0]]] + row2[1:]

关于python - 以编程方式对两个表进行自然连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462305/

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