按特定值删除列表中的列表
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
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