根据子列表的长度删除列表的子列表

时间:2019-09-04 18:44:40

标签: python list

我最近开始学习python,需要您的帮助。我有一个列表列表,我需要删除长度小于某个数字的列表。

我检查了关于使用列表列表的许多问题和答案,但是我没有发现有关此特定情况的任何信息,因此,感谢您的帮助。

我所拥有的示例:

Records = [[1,2], [3,4], [5,6,7], [8,9,10], [11], [12,13,14,15]]

我想删除列号小于3的列表。所以最后

我想拥有:

Records = [[5,6,7], [8,9,10],[12,13,14,15]]

我认为我必须循环遍历所有列表并检查len,然后消除具有len > 3的列表,但是我不知道该如何编码。你能帮我么?

谢谢!

3 个答案:

答案 0 :(得分:2)

天真,这就像

result = []
for record in Records:         # iterate over each element of the list
    if len(record) >= 3:       # your filter requirement
        result.append(record)  # adding it to the results we want
print(result)

与其他答案一样,您可以使用具有结构的列表理解来压缩代码很多

[element for element in iterable if filter(element)]

在您的情况下:

[record for record in Records if len(record) >= 3]

答案 1 :(得分:1)

result = [record for record in records if len(record) >= 3]

答案 2 :(得分:0)

如此简单:

Records = [[1,2], [3,4], [5,6,7], [8,9,10], [11], [12,13,14,15]]

[i for i in Records if len(i)>=3]

输出:

[[5, 6, 7], [8, 9, 10], [12, 13, 14, 15]]