4
我有一個列表['1 2 4 5 0.9', '1 2 4 5 0.6', '1 2 4 5 0.3', '1 2 4 5 0.4']
remove元素,如果它有它一定的字符串
我也有另一個列表:[0.9, 0.3, 0.7, 0.8]
我想使用第二個列表和第一列表元素包括最新第二列表,則該元素被刪除,因此第一個列表結束,如:
[1 2 4 5 0.6', '1 2 4 5 0.4']
我有一個列表['1 2 4 5 0.9', '1 2 4 5 0.6', '1 2 4 5 0.3', '1 2 4 5 0.4']
remove元素,如果它有它一定的字符串
我也有另一個列表:[0.9, 0.3, 0.7, 0.8]
我想使用第二個列表和第一列表元素包括最新第二列表,則該元素被刪除,因此第一個列表結束,如:
[1 2 4 5 0.6', '1 2 4 5 0.4']
你的意思是這樣的:
>>> lst = ['1 2 4 5 0.9','1 2 4 5 0.6','1 2 4 5 0.3','1 2 4 5 0.4']
>>> s = set([0.9,0.3,0.7,0.8])
>>> [x for x in lst if float(x.split()[-1]) not in s]
['1 2 4 5 0.6', '1 2 4 5 0.4']
這是一個更通用的方法來做到這一點。我意識到這可能不是實現這一目標的最佳方法,但這是我頭頂的問題。
>>> listOne = ['1 2 4 5 0.9', '1 2 4 5 0.6', '1 2 4 5 0.3', '1 2 4 5 0.4']
>>> listTwo = [0.9, 0.3, 0.7, 0.8]
>>> finalList = []
>>> for element in listOne:
flagBit = 0
for number in element.split():
if float(number) in listTwo:
flagBit = 1
break
if flagBit == 0:
finalList.append(element)
我覺得'x.rsplit('',1)'更好,因爲它可以比'x.split()[ - 1]'做更少的分割。 – 2013-04-22 19:05:34
@segfolt - 如果字符串以空格結尾,則表示「失敗」。也許'x.rsplit(None,1)'好一點。 – mgilson 2013-04-22 19:46:54