在两个列表

时间:2018-06-18 13:00:59

标签: python list unique

我是python的新手,我目前有一个文本文件,我切成两列。我正在寻找文本文件中唯一的一对一关系来确定新的购房者:

主要文件

1234地址,比利乔尔

Joe Martin,45其他地址

63其他其他地址,Joe Martin

Billy Joel,1234地址

我正在寻找独特的一对一关系(1234地址和Billy Joel)

Curent Steps / Goals:

  
      
  1. 根据','
  2. 将文本文件分割成两个列表   

期待写这样的东西(我知道这是非常可怕的布局,但我仍然坚持如何实现这一点):

addressListing= text file that is read

leftLst = addressListing.split(",", 1)[0]
rightLst = addressListing.split(".", 1) [1]    

for (x, y) in (leftLst, rightLst):
        if x in rightLst and y in leftLst:
             return x + y
        else:
             pass

如果一方只有地址而另一方只有名字,那么文本文件并不整洁。

2 个答案:

答案 0 :(得分:0)

{
    throw IndexOutOfBoundsException()
}.catch<RuntimeException>(NotImplementedException::class, IndexOutOfBoundsException::class) {
    println("Caught something: $it")
}

答案 1 :(得分:0)

您没有使用适当的数据结构来解决此问题。首先,当存储在文件中的项目要有关系时,请考虑使用database

虽然,如果您只需要对文件进行一次解析,那么使用dict应该足够且足够高效。

代码

def find_one_to_one(d):
    for k, v in d.items():
        if v in d and d[v] == k:
            return k, v
    else:
        return None

with open('test_file.txt') as file:
    d = {left.strip(): right.strip() for left, right in [row.split(',') for row in file]}
    print(find_one_to_one(d))

测试文件内容

1234 Address , Billy Joel
Joe Martin, 45 Other Address
63 OtherOther Address, Joe Martin
Billy Joel, 1234 Address

输出

('1234 Address', 'Billy Joel')