Python3.6を使っています。いま次のような文字列のリストをリストの構造はそのままで数値(float)に変換したいと思っています。

・今あるリスト(文字列)

str_list = [["1.2", "3.4"], ["5.6", "7.8"]]

・欲しいリスト

float_list = [[1.2, 3.4], [5.6, 7.8]]

これを多次元のときに簡単に対応できる関数などの方法がないか探しています。

例えばforを使えば以下のようになると思います。

str_list = [["1.2", "3.4"], ["5.6", "7.8"]]
float_list = []

for i in range(len(str_list)):
    float_list.append([float(str_lis[i][j]) for j in range(len(str_list[i]))])

内包表記のみで表す場合は

[[float(str_list[i][j]) for j in range(len(str_list[i]))] for i in range(str_list)]

と書けば(この場合は)欲しいリストが得られました。
ただ次元が上がっていくにつれてひとつひとつ書いていられないと思います。

なので一括してリストの全要素にアクセス(変換)しかつリスト構造はそのままに保ってくれる関数を探しているのですが、そのような関数あるいは方法はないでしょうか。

ご存知の方がいらっしゃれば教えてください。よろしくお願いいたします。