我有一个关于python的简单问题:
假设我有A = [1,2,3,4],我想对第二个和第三个条目中的元素求和。我如何在python中做到这一点?sum(A[i] for i in [1:2]) = 2 + 3 = 6不能工作。
发布于 2016-11-09 20:34:51
您的代码无法工作,因为[1:2]是,而不是Python语言中自己的上的合法表达式:
[1:2]
^
SyntaxError: invalid syntax修复方法
sum(i for i in A[1:3]) 都会起作用的。
更好的解决方案
sum(A[1:3])发布于 2016-11-09 20:34:14
这是无效的语法,您可以使用:
sum(A[i] for i in [1,2])或者:
sum(A[i] for i in range (1,3))或者使用slice:
sum(i for i in A[1:3])不包括切片中的最后一个索引。
(或者像下面的评论所说的,更简单的是: sum(A1:3) )
您的代码无效的原因是slice不能单独存在。不得不说,这是一个切片,例如,A1:3是A的切片,但1:3没有说明它应该获取的元素。第二个问题是索引,就像我提到的,最后一个不包括在内。
发布于 2016-11-09 20:34:22
sum(A[1:3])A1:3表示排除了从索引1到33的切片列表
阅读有关列表切片的内容。
祝你万事如意!
https://stackoverflow.com/questions/40506979
复制相似问题