aluckdog
如果预先不知道列表的深度,您可以尝试此操作。输入:names=['jones', 'kevin', ['henry', 37, ['a', 0.69999]], ['michael', True]]功能:def recursive_upper(names): ret_list=[] for x in names: if isinstance(x, list): ret_list.append(recursive_upper(x)) elif (isinstance(x, basestring) or isinstance(x, int) or isinstance(x, float) \ or isinstance(x, long) or isinstance(x, bool) or isinstance(x, complex)): ret_list.append(str(x).upper()) return ret_listprint recursive_func(names)输出:['JONES', 'KEVIN', ['HENRY', '37', ['A', '0.69999']], ['MICHAEL', 'TRUE']]该函数只是检查类型,如果类型是列表,则递归调用自身。当它找到字符串、int、float、long、bool 或复杂类型时,它会继续返回文本的大写版本。所有其他类型都被简单地忽略。(您可以在 elif 条件中添加/删除类型。请参阅此处)