我有一个包含混合数据类型的列表(包含整数的整数和元组),它们表示列表files
中文件的标记。我想以不同于普通整数的方式处理元组,因为我需要聚合从每个文件计算的数字。如果我循环遍历列表ind
并检查该条目是否为元组并将其传递给函数find_fname
,为什么在每个条目后打印出None
?这是一个最小的工作示例:
def find_fname(ind, files):
print files[ind]
files = ['file1','file2','file3','file4']
ind = [0,(1,2),3]
for thing in ind:
#check to see if entry in list is tuple
if hasattr(thing, '__iter__'):
print find_fname(thing[0],files)
print find_fname(thing[1],files)
else:
print find_fname(thing,files)
返回:
file1
None
file2
None
file3
None
file4
None
我希望看到find_fname
返回:
file1
file2
file3
file4
答案 0 :(得分:1)
函数find_fname
的返回值为None
,因为您打印的是值而不是返回值。如果函数没有返回任何内容,它会隐式返回None
。
你应该做的是:
def find_fname(ind, files):
return files[ind]