如果元素中包含某个字符串,请将其删除

时间:2013-04-22 19:00:05

标签: python list

我有一个列表['1 2 4 5 0.9', '1 2 4 5 0.6', '1 2 4 5 0.3', '1 2 4 5 0.4']

我还有另一个列表:[0.9, 0.3, 0.7, 0.8]

我想使用第二个列表,第一个列表元素包含第二个列表中的whats然后元素被删除,所以第一个列表最终如下:

[1 2 4 5 0.6', '1 2 4 5 0.4']

2 个答案:

答案 0 :(得分:8)

你的意思是这样的:

>>> 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']

答案 1 :(得分:0)

这是一种更通用的方法。我意识到这可能不是最好的方法,但这不是我的头脑。

>>> 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)