删除Python中具有一定数量元素的列表

删除Python中具有一定数量元素的列表,python,python-3.x,list,python-2.7,variables,Python,Python 3.x,List,Python 2.7,Variables,我有最新的名单 [['A', 'B', 'C'], ['A', 'B', 'D'], ['A', 'B', 'C', 'D'], ['A', 'C', 'D'], ['B', 'C', 'D']] 我想删除列表['A','B','C','D']。是否有任何方法可以通过检查列表内部并删除包含3个以上元素的列表来实现此目的? 谢谢 我知道我可以遍历整个列表,并添加长度为3的元素。但是我认为它不是很有效, b=[['A', 'B', 'C'], ['A', 'B', 'D'], ['A'

我有最新的名单

[['A', 'B', 'C'],
 ['A', 'B', 'D'],
 ['A', 'B', 'C', 'D'],
 ['A', 'C', 'D'],
 ['B', 'C', 'D']]
我想删除列表['A','B','C','D']。是否有任何方法可以通过检查列表内部并删除包含3个以上元素的列表来实现此目的? 谢谢

我知道我可以遍历整个列表,并添加长度为3的元素。但是我认为它不是很有效,
b=[['A', 'B', 'C'],
 ['A', 'B', 'D'],
 ['A', 'B', 'C', 'D'],
 ['A', 'C', 'D'],
 ['B', 'C', 'D']]
c=[]
for i in b:  
    if len(i)<=3:
        print(i)
        c.append(i)
[A',B',D'], [A',B',C',D'], [A',C',D'], ['B','C','D']] c=[] 对于b中的i:
如果len(i)此脚本通过解析原始列表的每个索引并获取其长度来创建一个新列表。如果长度为3,则会将其添加到新表中;如果长度不为3,则会将其忽略

newlist = [] 
for a in range (0, len(oldlist)):
    if len(oldlist[a]) == 3:
        newlist.append(oldlist[a]) 

使用列表理解

[x代表阵列中的x]

将按原样返回数组
x
表示数组中的一个元素,在您的示例中,表示要检查其长度的子数组

您可以将条件添加到此过滤器:

[x代表阵列中的x如果…]

这将返回数组,但仅针对通过
if
后的条件的元素
x


因此,您需要使用
len
函数检查x的长度。在这种情况下,当
len(x)使用检查
len(元素)
StackOverflow不是免费编码服务时,您的列表理解应该只包括
x
。你应该会的。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并使用:)或如果您是初学者,请使用循环检查较大列表中的每个元素,如果它满足您的条件则保留它。这里不需要
范围
,您只需对旧列表中的
执行