给定一个列表,我想对列表的一个子集(切片)应用一些操作集,并将每个转换的结果存储在原始列表中。
我的背景是 Ada,这导致我犯了以下错误:
Number_List = [0,1,2,3,4,5,6,7,8,9]
for Index, Number in enumerate(Number_List[1:]):
Number_List[Index] = Number + 1
给出一个新的 Number_List:2,3,4,5,6,7,8,9,10,9 并教我将数组的一部分重新索引为 0。
我已经转移到以下内容,这很麻烦但很实用。
Number_List = [0,1,2,3,4,5,6,7,8,9]
for Index in range(1,len(Number_List))
Number_List[Index] = Number_List[Index]+1
我正在寻找一种更优雅的方式来做到这一点。
最佳答案
enumerate
接受一个start
参数:
Number_List = [0,1,2,3,4,5,6,7,8,9]
for Index, Number in enumerate(Number_List[1:], start=1):
Number_List[Index] = Number + 1
你也可以这样写
Number_List[1:] = [x+1 for x in Number_List[1:]]
关于list - 更优雅的更新列表片段的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820392/