加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在符合条件的两个相邻列表元素之间插入元素

发布时间:2020-12-20 12:26:17 所属栏目:Python 来源:网络整理
导读:在 python中,在满足条件的任何两个元素之间插入元素的干净方法是什么? 像这样的电话: insert_between([1,2,3,4,7,8,9,15,16],lambda x,y: x + 1 != y) 应该产生: [1,16] 有没有比迭代和附加到第二个列表更好的方法? 解决方法 def insert_between(iterabl
在 python中,在满足条件的任何两个元素之间插入元素的干净方法是什么?

像这样的电话:

insert_between([1,2,3,4,7,8,9,15,16],lambda x,y: x + 1 != y)

应该产生:

[1,16]

有没有比迭代和附加到第二个列表更好的方法?

解决方法

>>> def insert_between(iterable,fill,cond):
...     iterable = iter(iterable)
...     prev = next(iterable)
...     yield prev
...     for cur in iterable:
...             if cond(prev,cur):
...                     yield fill
...             yield cur
...             prev = cur
...
>>>
>>> list(insert_between([1,y: x + 1 != y))
[1,16]

这非常有效,因为你无论如何都必须在列表中进行一次传递,这只能传递一次.请注意,它是一个生成器,因此如果您需要一次所有值,则需要将其强制转换为列表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读