所以我有这个列表。每个嵌套列表都有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]]
所以我有这个列表。每个嵌套列表都有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]]
如果你是一定的int
永远是最后一个,切片是,让你从各个子列表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]]
或者,您可以通过迭代throu GH的x
的元素,通过每个子元素迭代和评价如果是float
的一个实例,即:
out = [[i for i in sub if isinstance(i, float)] for sub in x]
此过滤掉任何元素列表sub
其是ISN子列表中x
是类型为float
的实例。此操作irregardless定位的,所以你可以使用它,如果int
的位置并不总是在最后:
print(out)
[[0.1, 0.2], [0.4, 0.05], [0.3, 0.3]]
最后,对于就地方法,for
循环和pop
ING是一个可行的选项:
for s in x: _ = s.pop()
现在x
突变为:
print(x)
[[0.1, 0.2], [0.4, 0.05], [0.3, 0.3]]
如果有人认为这个答案没有用,我会更愿意编辑它并修复它。 :-) –