我有一个清单 lstlst = ['Hi', 'Hello', '4', '71.5', '', '71.5', '', '68.1', '', '69', '', '69.4', '', '69.4', '', '70.3', '73.3', '']我想按原始列表的一部分创建一个新列表:在第三个元素之后,所有其他元素都在列表中,忽略空字符串。lst = ['Hi', 'Hello', '4', [71.5, 68.1, 69.0, 69.4, 69.4, 70.3, 73.3]]我(lst[2:]).split()在第三个元素忽略空字符串并将它们作为数字放入列表后尝试。
2 回答

胡子哥哥
TA贡献1825条经验 获得超6个赞
你可以这样做:
lst = ['Hi', 'Hello', '4', '71.5', '', '71.5', '', '68.1', '', '69', '', '69.4', '', '69.4', '', '70.3', '73.3', '']
result = lst[:3] + [[float(e) for e in lst[3:] if e]]
print(result)
输出
['Hi', 'Hello', '4', [71.5, 71.5, 68.1, 69.0, 69.4, 69.4, 70.3, 73.3]]

呼如林
TA贡献1798条经验 获得超3个赞
或filter
+ map
(有点长):
lst = lst[:3]+[list(filter(lambda i: type(i)==float,map(lambda x: float(x) if x else x,lst[3:])))]
现在:
print(lst)
是:
['Hi', 'Hello', '4', [71.5, 71.5, 68.1, 69.0, 69.4, 69.4, 70.3, 73.3]]
添加回答
举报
0/150
提交
取消