【问题标题】:Is it possible to increment a slice of a list in Python?是否可以在 Python 中增加列表的一部分?
【发布时间】:2015-01-16 13:27:55
【问题描述】:

我有一个列表,l=[1,2,3,4,5,6,7]。现在,我想增加给定索引 lr 内的所有元素。

如果l==2r==5 列表应该是[1,2,4,5,6,7,7]

我可以通过从l 运行到r 的“for 循环”来做到这一点。但是有什么方法可以在更短的时间内完成吗?

【问题讨论】:

  • 步幅可能是你想要的
  • 啊,我误会了。

标签: python list slice


【解决方案1】:

您可以使用切片赋值和列表推导:

>>> li= [1,2,3,4,5,6,7]
>>> li[l:r+1]= [v+1 for v in li[l:r+1]]
>>> li
[1, 2, 4, 5, 6, 7, 7]

【讨论】:

  • @anil 尽管我非常喜欢这个解决方案(它非常简洁和简短),但请记住,它没有必要比遍历数组和设置元素更快,因为你需要创建另一个列表并分配这些元素。此外,对于初学者或阅读您的代码的人来说,这种方法可能更难阅读。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 2020-01-24
相关资源
最近更新 更多