python – 迭代时从列表中删除
发布时间:2020-12-20 12:09:24 所属栏目:Python 来源:网络整理
导读:参见英文答案 How to remove items from a list while iterating?????????????????????????????????????23个 我有一份清单 a = [1,2,3,4,5,6,7,8,9]b = [10,11,12,13,14,15,16,17,18] 遍历列表b时,如果任何数字小于15,则从列表a中删除其对应的数字(索引). 例
参见英文答案 >
How to remove items from a list while iterating?????????????????????????????????????23个
我有一份清单 a = [1,2,3,4,5,6,7,8,9] b = [10,11,12,13,14,15,16,17,18] 遍历列表b时,如果任何数字小于15,则从列表a中删除其对应的数字(索引). 例如: – 在列表中b 10,14小于15,因此应删除列表a中的对应物,即1,5. 目前,这就是我正在做的事情: for index,i in enumerate(b): if i < 15: del(a[index]) 这会返回一个超出范围的索引错误. 我怎样才能做到这一点? 解决方法
你应该使用list comprehension和zip而不是删除a中的元素,而是取b值超过15的元素.示例 –
a[:] = [i for i,j in zip(a,b) if j >=15] 我们在左侧使用[:],以便列表对象在原地变异. (这与a =< something>不同,因为后者简单地将名称a绑定到新列表,而前者在列表中改变列表). 演示 – >>> a = [1,9] >>> >>> b = [10,18] >>> a[:] = [i for i,b) if j >=15] >>> a [6,9] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |