当前位置: 首页 > 面试题库 >

根据另一个列表中的元素重复一个列表中的元素

琴刚豪
2023-03-14
问题内容

给出以下列表:

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

我想将[a]的每个元素重复其在[b]中的对应位置的编号,以产生此结果:

[0, 5, 5, 1]

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


问题答案:
In [7]: a = [0, 5, 1]

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

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

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

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

内容如下:

  • itertools.repeat(elem, n) -重复elem次
  • zip(a, b)从两个列表中组成一个2元组的列表,将每个元素与另一个列表中的对应元素配对。这为您提供了itertools.repeat用例中需要传递给的确切信息。
  • itertools.chain-将迭代器的结果列表展平为单个值列表。您既可以chain(*iterable)像我一样,也可以chain.from_iterable(iterable)像马丁·彼得斯那样。


 类似资料:
  • 问题内容: 我有两个看起来像的清单: 我要做的是将list1的所有那些元素都保留在list2中。结果应该是: 问题答案: 使用运算符,您可以检查元素是否在序列中。 使用列表理解: 但是效率不高。您最好转换为对象。

  • 我需要比较两个列表,以便创建在一个列表中找到的特定元素的新列表,而不是在另一个列表中。例如: 我想在列表_1中循环,并将列表_2中未在列表_1中找到的所有元素附加到主列表。 结果应该是: 用python怎么做?

  • 问题内容: 我是Java8的新手。我需要根据某些条件(从另一列表中)减去/删除一个列表中的POJO,并将其显示在UI上。 迭代一个列表并搜索条件删除对象将原始列表发送到UI ..主要代码.. 有没有更好的方法来处理循环?任何帮助表示赞赏。 问题答案: 你现在所拥有的代码工作完美,但也因为通过迭代的每一个。改善的一种方法是将每个孩子的存储在中,如果其中包含每个孩子,则将其从中删除:

  • 我有一个数字列表L。还有另一个数字列表M。我需要返回一个在L和M中找到的数字列表L。 编辑:从数学上讲,我正在寻找多集交点。 例子: L=3,,4,,5,,,6 M=,7,,,,1 L'=9,1,2,1 我为此编写了以下代码: 虽然它达到了目的,但我想知道是否有一种惯用的Perl6方法可以做到这一点? 一些背景:我一直在尝试一起学习Perl6和Python,并用这两种语言解决相同的难题。Pytho

  • 我想在java中创建一个方法,该方法接收两个字符串列表:

  • 为简单起见,我有2个字符串列表,我需要将字符串连接到一个列表中并创建另一个列表。例如—— 我想要输出为 我可以使用正则for循环来实现这一点。但不知道如何继续使用java8 我试图让自己思考nJava8:-)