2016-10-01 175 views

回答

2

如果你是一定int永远是最后一个,切片是,让你从各个子列表subxsub[:-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]] 
+0

如果有人认为这个答案没有用,我会更愿意编辑它并修复它。 :-) –

相关问题