Python 从混合数据类型列表中获取整数
我有一个混合数据类型整数和元组的列表,其中包含表示列表文件中文件标记的整数。我希望以不同于普通整数的方式处理元组,因为我需要聚合从每个文件计算的数字。如果我在列表ind上循环并检查条目是否是元组并将其传递给函数find_fname,为什么它会在每个条目后打印出None?下面是一个简单的工作示例:Python 从混合数据类型列表中获取整数,python,list,indexing,tuples,Python,List,Indexing,Tuples,我有一个混合数据类型整数和元组的列表,其中包含表示列表文件中文件标记的整数。我希望以不同于普通整数的方式处理元组,因为我需要聚合从每个文件计算的数字。如果我在列表ind上循环并检查条目是否是元组并将其传递给函数find_fname,为什么它会在每个条目后打印出None?下面是一个简单的工作示例: def find_fname(ind, files): print files[ind] files = ['file1','file2','file3','file4'] ind = [
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返回:
函数find_fname的返回值为None,因为您打印了该值而不是返回它。如果函数不返回任何内容,则隐式返回None 你应该做的是:
def find_fname(ind, files):
return files[ind]
您不能从函数中打印?可以,但您已经在代码中打印返回值,如打印查找\u fname。。。所以你打印了两次。好的,非常感谢!
def find_fname(ind, files):
return files[ind]