假设我有以下格式的列表:
[(99.0,0.14),(101.0,0.11),(104.0,4.5),(78.0,14.0)]
Run Code Online (Sandbox Code Playgroud)
我想迭代浮点值列表,检查元组的第一个索引中的值是否大于100以及元组的第二个索引中的值是否大于10并且上述任一条件是否为真随后从列表中完全删除元组.
为了得到这样的东西:
[(99.0,0.14)]
Run Code Online (Sandbox Code Playgroud)
我试过@ StefanPochmann对这个问题的上一个版本的回答:
z = [t for t in z if t[0] <= 100 and t[1] <= 10]
Run Code Online (Sandbox Code Playgroud)
但它返回此错误,因为我在列表的元组中处理浮点值:
TypeError: 'float' object is not iterable
Run Code Online (Sandbox Code Playgroud)
执行此检查的最佳方法是什么?
列表理解,保持良好的元组.
>>> tuples = [(99,78),(101,46),(104,69),(0,32)]
>>> [t for t in tuples if max(t) <= 100]
[(99, 78), (0, 32)]
Run Code Online (Sandbox Code Playgroud)
这不是一个元组而是一个列表.
编辑:这是原始问题的答案,而不是当前答案 - 无效的更改.