所以我有這個列表。每個嵌套列表都有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]]
如果有人認爲這個答案沒有用,我會更願意編輯它並修復它。 :-) –