从混合数据类型列表中获取整数

时间:2017-10-31 15:49:00

标签: python list indexing tuples

我有一个包含混合数据类型的列表(包含整数的整数和元组),它们表示列表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

1 个答案:

答案 0 :(得分:1)

函数find_fname的返回值为None,因为您打印的是值而不是返回值。如果函数没有返回任何内容,它会隐式返回None

你应该做的是:

def find_fname(ind, files):
    return files[ind]