将列表列表保存到另一个列表列表中,但在python中进行了更改

将列表列表保存到另一个列表列表中,但在python中进行了更改,python,list,Python,List,我有一张这样的清单: list1= [['Sarah', 55, 7, 'x'], ['John', 24, 8, 'x']] 我想将其复制到另一个列表中,但将其作为矩阵保存,如下所示: list2= [['Sarah', 55.0, 7.0], ['John', 24.0, 8.0]] 因此,我要做的是将每个数字设为浮点数,并删除每个子列表的最后一个元素您可以使用嵌套列表理解,将满足str.isnumeric的所有字符串转换为float: [[float(j) if str(j).isnu

我有一张这样的清单:

list1= [['Sarah', 55, 7, 'x'], ['John', 24, 8, 'x']]
我想将其复制到另一个列表中,但将其作为矩阵保存,如下所示:

list2= [['Sarah', 55.0, 7.0], ['John', 24.0, 8.0]]

因此,我要做的是将每个数字设为浮点数,并删除每个子列表的最后一个元素

您可以使用嵌套列表理解,将满足
str.isnumeric
的所有字符串转换为
float

[[float(j) if str(j).isnumeric() else j for j in i] for *i, _ in list1]
# [['Sarah', 55.0, 7.0], ['John', 24.0, 8.0]]

您可以在此处使用简单的列表理解:

[[name, *map(float, i)] for name, i, _ in list1]
结果:

[['Sarah', 55.0, 7.0], ['John', 24.0, 8.0]]

您可以使用解包使转换更清晰:

list2 = [ [name,float(n1),float(n2)] for name,n1,n2,_ in list1 ]

我们能帮你修改代码吗?请通过编辑您的问题来分享。对一个甚至没有分享尝试的用户投两张赞成票。。。真正地
list2 = [ [name,float(n1),float(n2)] for name,n1,n2,_ in list1 ]