Jos*_*eph -1 python list repeat
也许这之前被问过,在这种情况下我会删除这个问题,但我有两个列表:
occurence_list = [1, 2, 3, 4, 5]
value_list = [10, 20, 30, 40, 50]
Run Code Online (Sandbox Code Playgroud)
我希望每个值看起来与另一个列表中相同索引的值相同:
result = [10, 20, 20, 30, 30, 30, 40, 40, 40, 40, 50, 50, 50, 50, 50]
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?
使用itertools.repeat()和chain():
In [6]: from itertools import repeat, chain
In [7]: list(chain.from_iterable(repeat(i, j) for i, j in zip(value_list, occurence_list)))
Out[7]: [10, 20, 20, 30, 30, 30, 40, 40, 40, 40, 50, 50, 50, 50, 50]
Run Code Online (Sandbox Code Playgroud)
不是通过连接重复对象chain.from_iterable然后将结果转换为列表,您还可以使用嵌套列表推导:
In [12]: [t for i, j in zip(value_list, occurence_list) for t in repeat(i, j)]
Out[12]: [10, 20, 20, 30, 30, 30, 40, 40, 40, 40, 50, 50, 50, 50, 50]
Run Code Online (Sandbox Code Playgroud)