删除元组中的None

2024-07-02 09:02:00 发布

您现在位置:Python中文网/ 问答频道 /正文

以前关于如何从列表中删除一个都没有帮助我! 我正在创建一个元组列表:

list(zip(*[iter(pointList)] *3))

所以我得到的是

^{pr2}$

或者

[(object1,object2,object3),(object4,object5,object6),(object7,object8,None)]

我想删除元组中的None(它只能出现在列表的最后一个条目中!)。所以我想要的输出是:

[(object1,object2,object3),(object4,object5,object6),(object7)]

或者

[(object1,object2,object3),(object4,object5,object6),(object7,object8)]

我认为对我有帮助的是:

filter(None,myList)

Tags: none列表ziplist元组iterobject1object2
1条回答
网友
1楼 · 发布于 2024-07-02 09:02:00

元组是不可变的,所以一旦你构造了一个元组,你就不能改变它的长度或者设置元素。因此,您唯一的选择是构造新的元组作为后处理步骤,或者不首先生成这些元组。在

后处理

只需在列表理解语句中使用带有tuple(..)构造函数的生成器

[tuple(xi for xi in x if xi is not None) for x in data]

改变“打包”算法

使用打包我的意思是将m×n项的列表转换为m元素的“切片”(这是您的第一个代码片段所做的)。在

如果-就像变量名似乎暗示的那样-pointList是一个列表。您可以省去使用zip的麻烦,并使用:

^{pr2}$

直接。这可能也会更有效一些,因为在这里我们从不会首先生成带有Nones的元组(当然,给定postList不包含{}s)。在

相关问题 更多 >