试图将字典与文本文件进行比较

时间:2016-07-07 04:10:24

标签: python dictionary

我正在尝试使用python来获取一个简单的网页剪贴簿,它会检查网站上的名称,将它们全部放在带有链接的字典中,然后将这些名称与我已准备好保存的列表进行比较。我坚持的问题是尝试使用网站中不在保存列表中的名称创建一个新词典。

together = dict(zip(names, links))
final_dict = {}


for k, v in together.items():
    with open('file.txt', 'r') as f:
        file_lines = f.readlines()
        if k in file_lines:
            print('All ready have that name.')
            pass
        else:
            print(k, v)
            final_dict.update({k, v})
    f.close()

保存的文件只有k字典的together值。

2 个答案:

答案 0 :(得分:2)

尝试更改

file_lines = f.readlines()

file_lines = f.read().splitlines()  

前者将换行符\n保留在该行的末尾。

此外final_dict.update({k, v})应该是final_dict.update({k: v}),正如其他人已经指出的那样,您的缩进可能会出现问题。

答案 1 :(得分:2)

您的算法效率不高。对于together中的每个项,它会读取整个文件。如果你在遇到它时处理文件中的每一行,它会快得多:

together = dict(zip(names, links))

with open('file.txt', 'r') as f:
    for line in f:
        if line in together:
            del together[line]