我怎样才能理解列表呢?

2024-04-19 15:16:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个循环周期内用重复的值做一个列表,如下所示:

s=[]
for i in range(5): 
    s+=[i,i]

但这行不通。你知道吗

[i, i for i in range(5)]

Tags: in列表forrange内用
3条回答

以下是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循环用于重复这些值。你知道吗

没有直接的方法可以使用单级列表理解来做与显式循环完全相同的事情。这是因为理解中循环的每次迭代最多只能产生一个值(如果您有if子句,它可以产生零)。你知道吗

但是,对于这种特定情况,可以使用除法生成所需的重复值序列,同时迭代较大的range

s = [i//2 for i in range(10)]

相关问题 更多 >