【问题标题】:Python - Reading two files into two dictionaries and comparing keysPython - 将两个文件读入两个字典并比较键
【发布时间】:2021-12-23 10:46:02
【问题描述】:

我有两个文件,file1.txt 和 file2.txt,带有一组键和值。 我需要将这两个文件读入两个不同的字典。此后,我将遍历这两个字典,以便:

  1. 检查是否有任何键重复
  2. 检查这些重复键的值是否至少为 8 或更高(范围从 0 到 10) - 如果是,则打印它们。

我怀疑的事情: 如何比较两个不同字典中的键

*我是python新手,正在学习atm

非常感谢您的任何意见!

【问题讨论】:

  • 将两个文件读入一本字典是什么意思?
  • 我认为字典中不能有重复的键。
  • 感谢您也意识到了这一点!我会改写我的问题
  • 您应该真正包括您尝试过的代码、一些示例输入以及实际输出与您预期的偏差。

标签: python file dictionary key


【解决方案1】:

如果您将字典存储在文本文件中,我强烈建议您使用 json。您会在 json 模块中找到很多支持。

对于两个字典之间的公共键,只需使用 set intersection。见https://www.pythontutorial.net/python-basics/python-set-intersection/

d1 = {
    'alpha': 1,
    'beta': 2,
    'gamma': 3,
}

d2 = {
    'alpha': 1,
    'bravo': 2,
    'charlie': 3,
}

common = set(d1.keys()) & set(d2.keys())
print(len(common), common)

【讨论】:

  • 我不确定您所说的 8 或更高的值是什么意思。如果您指的是公共键的数量,请使用 len。如果您的意思是从 dict 中获取值,则可以像访问任何其他 dict 值一样访问它。
【解决方案2】:

您没有说明重复的含义: 1 这是否意味着它存在于两个文件中。 2 在同一个文件中存在2次。

对于第一种情况,您可以将 2 个文件读取到 2 个单独的字典中。然后运行这个循环:

for key in file1.keys():
    if key in file2.keys():
        print(key)

对于第二种情况,您需要将每个文件的键和值作为元组列表读取并循环遍历它们以检查重复项。在将数据转化为字典之前

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多