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

基于另一个元素的一个列表中的Python重复元素

发布时间:2020-12-20 11:52:06 所属栏目:Python 来源:网络整理
导读:鉴于以下列表: a = [0,5,1]b = [1,2,1] 我想用[b]中相应位置的数字重复[a]的每个元素来产生这个: [0,1] 即0发生1次,5发生2次,1发生1次. 解决方法 In [7]: a = [0,1]In [8]: b = [1,1]In [9]: list(itertools.chain(*(itertools.repeat(elem,n) for elem,n
鉴于以下列表:

a = [0,5,1]
b = [1,2,1]

我想用[b]中相应位置的数字重复[a]的每个元素来产生这个:

[0,1]

即0发生1次,5发生2次,1发生1次.

解决方法

In [7]: a = [0,1]

In [8]: b = [1,1]

In [9]: list(itertools.chain(*(itertools.repeat(elem,n) for elem,n in zip(a,b))))
Out[9]: [0,1]

In [10]: b = [2,3,4]

In [11]: list(itertools.chain(*(itertools.repeat(elem,b))))
Out[11]: [0,1,1]

这里的作品如下:

> itertools.repeat(elem,n) – 重复elem n次> zip(a,b)列出两个列表中的2元组列表,将每个元素与另一个列表中的相应元素配对.这将为您提供在您的用例中传递给itertools.repeat的确切内容.> itertools.chain – 将生成的迭代器列表展平为单个值列表.您可以像我一样链接(* iterable)或像Martijn Peters那样链接.from_iterable(可迭代).

(编辑:李大同)

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

    推荐文章
      热点阅读