list - 更优雅的更新列表片段的方法

标签 list iteration python

给定一个列表,我想对列表的一个子集(切片)应用一些操作集,并将每个转换的结果存储在原始列表中。

我的背景是 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/

相关文章:

python - 从列表中获取元素,循环方式

python - Redis - Pyredis 遍历 SET 上 SINTER 的结果

python - 如何将异常发送到 django 项目的 Sentry

java - 使用泛型在列表中转换对象

python - 如何对包含多个数值列表的字典进行排序?

java - 如何在 lambda 迭代和普通循环之间做出决定?

python - PyPi 上缺失模块的总下载量

c# - 如何使用 Fluent Assertions 检查列表是否有序

python - 在 Python 中,只返回列表中最大奇数的方法是什么?

java - 如何仅打印一次嵌套 for 循环的结果