Skip to main content
 首页 » 编程设计

python之如何用序号替换列表中的值

2025年05月04日13xxx_UU

我有一个列表:

a = [[6, 8, 12, 15], [2, 5, 13], [1], [5], [6, 15]] 

我想将内部列表中的所有值替换为它们的序号值,例如:

b = [[0, 0, 0, 0], [1, 1, 1], [2], [3], [4, 4]] 

我试过这个:

for jj in a: 
    for uu in range(0, len(jj)): 
        for k,q in enumerate(a): 
            jj[uu] == k 

它没有输出我想要的列表。我怎样才能做到这一点?

请您参考如下方法:

这是您想要的输出吗?

In [1]: a = [[6, 8, 12, 15], [2, 5, 13], [1], [5], [6, 15]] 
 
In [2]: b = [[idx] * len(sublist) for idx, sublist in enumerate(a)] 
 
In [3]: b 
Out[3]: [[0, 0, 0, 0], [1, 1, 1], [2], [3], [4, 4]] 

这个答案也比使用 range(len(a)) 的版本更 Pythonic。