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

Delete the list in the list by specific value

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

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

比如我想删除列表["b", 2] 表示删除包含2.

的列表

使用列表理解排除您不感兴趣的成员。

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

您必须遍历整个列表,然后搜索要删除的列表。列表就像一个数组。如果你想要某样东西,你必须去寻找它。那么现在的问题是如何正确地做到这一点?

试试这个:

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;

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

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