gpt4 book ai didi

python - 从元组中删除 None

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:04 25 4
gpt4 key购买 nike

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

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

所以我有的是

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

[(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)

最佳答案

元组是不可变的,因此一旦您构建了一个元组,您就不能改变它的长度或设置它的元素。因此,您唯一的选择是构建元组作为后处理步骤,或者一开始就不要生成这些元组。

后处理

只需在 list comprehension 语句中使用 generatortuple(..) 构造函数:

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

改变“打包”算法

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

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

[tuple(pointList[i:i+3]) for i in range(0,len(pointList),3)]

直接。这可能也会更有效一些,因为在这里我们从一开始就不会生成带有 None 的元组(假设 postList 不包含 None当然)。

关于python - 从元组中删除 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43394708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com