按特定值删除列表中的列表

时间:2015-10-09 05:50:15

标签: python list list-comprehension data-manipulation

lists = [["a", 1], ["b", 2], ["c", 3]]

有没有办法按特定值删除列表中的列表?

例如,我想通过删除包含2的列表来删除列表[" b",2]。

3 个答案:

答案 0 :(得分:4)

使用列表推导来排除您不感兴趣的成员。

>>> lists = [["a", 1], ["b", 2], ["c", 3]]
>>> [i for i in lists if 2 not in i]
[['a', 1], ['c', 3]]

答案 1 :(得分:1)

lists = [["a", 1], ["b", 2], ["c", 3]]
lists1 = []

def check_if_two(r):
   if 2 not in r:
     lists1.append(r)

for s in lists:
   check_if_two(s)

print lists1

答案 2 :(得分:0)

您必须浏览整个列表,然后搜索要删除的列表。列表就像一个数组。如果你想要一些东西,你必须在它之后搜索。所以现在的问题是如何做到这一点?

试试这个:

indexNumber := ["foo", "bar", "baz"].index('bar')

您将获得索引。使用索引,您可以使用pop(indexNumber)将其删除。如果您知道搜索的整个列表,这将有效。但这不是你想要的。你需要的是:

#Create a copy of your list
listOfThings = list(lists);
counter = 0;

#Look at each list in your list
for aList in listOfThings
  if -1 != aList.index("what you want")
    lists.pop(counter);
  counter += 1;

此代码未经测试,但我认为它会对您有所帮助。我希望我没有混合太多的编程语言。