2024-04-25 15:21:37 发布
网友
假设一个列表a = [4, 8, 5, 7, 7, 7, 7, 3, 2, 2, 2, 5, 3, 3, 3, 3, 3]有没有一种方法可以通过列表理解来创建这个列表?你知道吗
a = [4, 8, 5, 7, 7, 7, 7, 3, 2, 2, 2, 5, 3, 3, 3, 3, 3]
a=[4,8,5,(4乘以7),3,(3乘以2),5,(5乘以3)]
我知道如何只使用一个重复值,而不是三个值和中间不重复的值。你知道吗
如果您试图从硬编码计数创建一个文本列表,那么通过串联可以更容易地实现这一点:
a = [4, 8, 5] + 4 * [7] + [3] + 3 * [2] + [5] + 5 * [3]
如果必须使用列表理解,则必须为每个值包含一个乘数,然后使用双循环来重复这些值:
# list of (count, value) pairs inputs = [(1, 4), (1, 8), (1, 5), (4, 7), (1, 3), (3, 2), (1, 5), (5, 3)] a = [i for count, i in inputs for _ in range(count)]
演示:
>>> [4, 8, 5] + 4 * [7] + [3] + 3 * [2] + [5] + 5 * [3] [4, 8, 5, 7, 7, 7, 7, 3, 2, 2, 2, 5, 3, 3, 3, 3, 3] >>> inputs = [(1, 4), (1, 8), (1, 5), (4, 7), (1, 3), (3, 2), (1, 5), (5, 3)] >>> [i for count, i in inputs for _ in range(count)] [4, 8, 5, 7, 7, 7, 7, 3, 2, 2, 2, 5, 3, 3, 3, 3, 3]
如果您试图从硬编码计数创建一个文本列表,那么通过串联可以更容易地实现这一点:
如果必须使用列表理解,则必须为每个值包含一个乘数,然后使用双循环来重复这些值:
演示:
相关问题 更多 >
编程相关推荐