删除 Python 中具有一定数量元素的列表
Delete lists that have a certain amount of elements in Python
我有当前列表
[['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)
此脚本通过解析原始列表的每个索引并获取其长度来创建新列表。如果长度为 3,那么它会被添加到新的 table,如果它的长度不是 3,那么它就会被遗忘
newlist = []
for a in range (0, len(oldlist)):
if len(oldlist[a]) == 3:
newlist.append(oldlist[a])
使用列表理解!
[ x for x in array ]
将 return 数组保持原样。 x
代表数组中的一个元素,在您的例子中,您要检查其长度的 sub-arrays。
您可以在此添加条件进行过滤:
[ x for x in array if ... ]
这将 return 数组,但仅适用于在 if
.
之后通过条件的元素 x
因此您需要使用 len
函数检查 x 的长度。在这种情况下,当 len(x) <= 3
时,您的列表理解应该只包括 x
本着学习的精神,我没有给你字面上的答案,但你应该能够将这些信息拼凑起来。
尝试使用列表推导,它们非常强大并且经常在 python 中用于转换、映射和过滤数组。
我有当前列表
[['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)
此脚本通过解析原始列表的每个索引并获取其长度来创建新列表。如果长度为 3,那么它会被添加到新的 table,如果它的长度不是 3,那么它就会被遗忘
newlist = []
for a in range (0, len(oldlist)):
if len(oldlist[a]) == 3:
newlist.append(oldlist[a])
使用列表理解!
[ x for x in array ]
将 return 数组保持原样。 x
代表数组中的一个元素,在您的例子中,您要检查其长度的 sub-arrays。
您可以在此添加条件进行过滤:
[ x for x in array if ... ]
这将 return 数组,但仅适用于在 if
.
x
因此您需要使用 len
函数检查 x 的长度。在这种情况下,当 len(x) <= 3
x
本着学习的精神,我没有给你字面上的答案,但你应该能够将这些信息拼凑起来。
尝试使用列表推导,它们非常强大并且经常在 python 中用于转换、映射和过滤数组。