gre*_*sin 3 python tuples nonetype
以前关于如何从列表中删除无的答案不帮助我!我正在创建一个元组列表:
list(zip(*[iter(pointList)] *3))
Run Code Online (Sandbox Code Playgroud)
所以我拥有的是
[(object1,object2,object3),(object4,object5,object6),(object7,None,None)]
Run Code Online (Sandbox Code Playgroud)
要么
[(object1,object2,object3),(object4,object5,object6),(object7,object8,None)]
Run Code Online (Sandbox Code Playgroud)
我想删除元组中的None(只能在列表的最后一个条目中出现!).所以我想要的输出是:
[(object1,object2,object3),(object4,object5,object6),(object7)]
Run Code Online (Sandbox Code Playgroud)
要么
[(object1,object2,object3),(object4,object5,object6),(object7,object8)]
Run Code Online (Sandbox Code Playgroud)
我认为对我有用的是:
filter(None,myList)
Run Code Online (Sandbox Code Playgroud)
元组是不可变的,所以一旦你构造了一个元组,就不能改变它的长度或设置它的元素.你唯一的选择是这样来构建新的元组作为后处理步骤,或者不产生摆在首位,这些元组.
只需在列表推导语句中使用带有构造函数的生成器:tuple(..)
[tuple(xi for xi in x if xi is not None) for x in data]
Run Code Online (Sandbox Code Playgroud)
对于打包,我的意思是将m×n项的列表转换为m个元素的n个 "切片" (这是您的第一个代码片段所做的).
如果 - 像变量名似乎暗示 - pointList是一个列表.您可以省去使用zip和使用的麻烦:
[tuple(pointList[i:i+3]) for i in range(0,len(pointList),3)]
Run Code Online (Sandbox Code Playgroud)
直.这可能会更高效,因为在这里我们从来没有生成带有Nones的元组(当然postList不包含Nones).
| 归档时间: |
|
| 查看次数: |
2822 次 |
| 最近记录: |