gpt4 book ai didi

python - 在 Python 的 for 循环中使用 dict.get() 方法时如何传递变量

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:17 25 4
gpt4 key购买 nike

我是 Python 的新手,正在完成一项小任务。在 Python 的 dict.get() 方法中传递变量时出现问题。

这是我正在使用的代码示例:

inputFile = open("Result_table_file.txt")

outputFile = open("Result.txt","w")

file = open("matadata.txt")

from collections import defaultdict
d = defaultdict(dict)

for line in file:
name,values = line.split(':',1)
d[name] = values

for record in inputFile:
recordSplit = record.split(",")
filename = recordSplit[3]
metadataValue = d.get(filename)
print "FileName :" + filename
print metadataValue
print "Record : " + record

输出是:

FileName : Image01.tif
Metadata : None
Record : 100,134423.0,13911111,Image01

这段代码工作正常。唯一的问题是当我将 filename 变量传递给 metadataValue = d.get(filename) 方法时,它给我的结果是 None

任何人都可以告诉我可能是什么问题以及我该如何解决它。

还有一件事我已经确定,当我手动创建文件名变量而不是从文件中获取值时。它工作正常。

例如:

文件名 = "Image01"d.get(文件名)

我获得了正确的输出,而如果我在读取文件时获得了值(value),那么这个东西就不起作用了。

例如

记录在输入文件中: recordSplit = record.split(",") 文件名 = recordSplit[3] 元数据值 = d.get(文件名) 打印“文件名:”+文件名 打印元数据值 打印“记录:”+记录

有什么想法吗?

最佳答案

如果 d[filename] 不存在,则 get 将返回 None

如果 d[filename] 不存在,添加第二个参数作为默认值返回:

In [2]: d = {'a':1, 'b':2}

In [7]: print d.get('a')
1

In [8]: print d.get('c')
None

In [9]: print d.get('c', 77)
77

关于python - 在 Python 的 for 循环中使用 dict.get() 方法时如何传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15504845/

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