lists = [["a", 1], ["b", 2], ["c", 3]]
有没有办法按特定值删除列表中的列表?
例如,我想通过删除包含2的列表来删除列表[" b",2]。
答案 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;
此代码未经测试,但我认为它会对您有所帮助。我希望我没有混合太多的编程语言。