我想從現(xiàn)有的嵌套列表創(chuàng)建一個(gè)新的嵌套列表。這個(gè)新列表應(yīng)該包括現(xiàn)有列表中的索引+1。例子:my_list = [[20, 45, 80],[56, 29],[76],[38,156,11,387]]結(jié)果:my_new_list = [[1,2,3],[1,2],[1],[1,2,3,4]]如何創(chuàng)建這樣的列表?
3 回答

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
保存一個(gè) python 循環(huán),range
在列表推導(dǎo)中強(qiáng)制迭代(python 3 需要),所以它比經(jīng)典的雙嵌套推導(dǎo)要快:
my_list = [[20, 45, 80],[56, 29],[76],[38,156,11,387]] index_list = [list(range(1,len(x)+1)) for x in my_list]

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
有幾種方法可以做到這一點(diǎn),但首先想到的是1
在嵌套列表理解中枚舉具有起始索引的元素。
>>> [[index for index, value in enumerate(sub, 1)] for sub in my_list] [[1, 2, 3], [1, 2], [1], [1, 2, 3, 4]]

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
另一種解決方案可能是:
new_list = [list(range(1,len(item)+1)) for item in my_list]
添加回答
舉報(bào)
0/150
提交
取消