所以我有这份清单。每个嵌套列表都有n+1
元素,其中第一个元素是浮点数,最后一个元素是整数。我需要为每个嵌套列表获取所有浮点数(因此n+1
中的n个元素)。哪种方法最好?
例如:
x = [[0.1, 0.2, 1], [0.4, 0.05, 16], [0.3, 0.3, 5]]
output = [[0.1, 0.2], [0.4, 0.05], [0.3, 0.3]]
答案 0 :(得分:5)
答案 1 :(得分:3)
如果您某些,int
将永远是最后一个,切片是一个选项,可以修剪{{1}中每个子列表sub
的最后一个元素使用x
(sub[:-1]
表示抓取除最后一个元素之外的所有内容):
[:-1]
或者,您可以通过迭代out = [sub[:-1] for sub in x] # or sub[:2] if sub is always 3 elements long
print(out)
[[0.1, 0.2], [0.4, 0.05], [0.3, 0.3]]
的元素,遍历每个子元素并评估它是否是x
的实例来完成此操作,即:
float
这会筛选列表out = [[i for i in sub if isinstance(i, float)] for sub in x]
中的任何元素,该列表是sub
中不属于x
类型实例的子列表。无论定位,它都可以运行,因此如果float
的位置并不总是最后的话,您可以使用
int
最后,对于就地方法,print(out)
[[0.1, 0.2], [0.4, 0.05], [0.3, 0.3]]
循环和for
是一个可行的选择:
pop
现在for s in x: _ = s.pop()
变异为:
x