如何解决这样做可以删除列表中的元素吗?
# Program to remove high and low values in the list
data = [4,5,104,105,110,120,130,150,160,170,183,185,187,188,191,350,360]
index = 0
while index < len(data):
if data[index] <= 100 or data[index] >= 200:
del data[index]
index = index - 1
index += 1
print(data)
解决方法
在这种情况下,您绝对最好使用 filter,如下所示:
data = [
4,5,104,105,110,120,130,150,160,170,183,185,187,188,191,350,360
]
filtered_list = list(filter(lambda x: 100 < x < 200,data))
就地修改列表从来都不是一个好主意。如果你真的想使用循环而不是过滤列表,你应该使用第二个列表而不是修改旧列表:
new_list = []
for val in data:
if 100 < val < 200:
new_list.append(val)
编辑
如果您的代码可以正常工作,而您只是想知道是否有更好的方法来完成您的任务,请考虑在 Code Review Stack Exchange 上发帖,因为这是解决此类问题的更好地方。
,虽然您写的内容是正确的,但如果您只是想根据范围过滤值。你可以只使用 list comprehension:
data = [4,360]
filtered_data = [d for d in data if 100 < d < 200 ]
print(filtered_data)
输出:
[104,191]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。