2024-04-19 15:16:11 发布
网友
我想在一个循环周期内用重复的值做一个列表,如下所示:
s=[] for i in range(5): s+=[i,i]
但这行不通。你知道吗
[i, i for i in range(5)]
以下是zip的一种方法:
zip
[i for p in zip(range(5), range(5)) for i in p]
你可以这样做:
[i for i in range(5) for j in range(2)]
输出为:
[0, 0, 1, 1, 2, 2, 3, 3, 4, 4]
i循环提供值,j循环用于重复这些值。你知道吗
i
j
没有直接的方法可以使用单级列表理解来做与显式循环完全相同的事情。这是因为理解中循环的每次迭代最多只能产生一个值(如果您有if子句,它可以产生零)。你知道吗
if
但是,对于这种特定情况,可以使用除法生成所需的重复值序列,同时迭代较大的range:
range
s = [i//2 for i in range(10)]
以下是
zip
的一种方法:你可以这样做:
输出为:
i
循环提供值,j
循环用于重复这些值。你知道吗没有直接的方法可以使用单级列表理解来做与显式循环完全相同的事情。这是因为理解中循环的每次迭代最多只能产生一个值(如果您有
if
子句,它可以产生零)。你知道吗但是,对于这种特定情况,可以使用除法生成所需的重复值序列,同时迭代较大的
range
:相关问题 更多 >
编程相关推荐